class CFPropertyList::Binary

def int_to_binary(value)

Codes an integer to binary format
def int_to_binary(value)
  # Note: nbytes is actually an exponent.  number of bytes = 2**nbytes.
  nbytes = 0
  nbytes = 1  if value > 0xFF # 1 byte unsigned integer
  nbytes += 1 if value > 0xFFFF # 4 byte unsigned integer
  nbytes += 1 if value > 0xFFFFFFFF # 8 byte unsigned integer
  nbytes += 1 if value > 0x7FFFFFFFFFFFFFFF # 8 byte unsigned integer, stored in lower half of 16 bytes
  nbytes = 3  if value < 0 # signed integers always stored in 8 bytes
  Binary.type_bytes(0b0001, nbytes) <<
    if nbytes < 4
      [value].pack(["C", "n", "N", "q>"][nbytes])
    else # nbytes == 4
      [0,value].pack("Q>Q>")
    end
end