1. [ytti@ytti.fi ~]% pry
  2. [1] pry(main)> addr = 1862270976
  3. => 1862270976
  4. [2] pry(main)> mask = 4294967040
  5. => 4294967040
  6. [3] pry(main)> addr.to_s(2)
  7. => "1101111000000000000000000000000"
  8. [4] pry(main)> mask.to_s(2)
  9. => "11111111111111111111111100000000"
  10. [5] pry(main)> (addr | (mask ^ (2**32-1))).to_s(2)
  11. => "1101111000000000000000011111111"
  12. [6] pry(main)> (addr | ~mask).to_s(2)
  13. => "-10010000111111111111111100000001"
  14. [7] pry(main)>ß