UDP (200 비트 단위)를 통해 매우 긴 이진 정수를 보내려고합니다. 배열의 pack 메소드를 사용하려고하면 변환하려고하는 문자열이 너무 큽니다.Ruby에서 긴 이진 정수 패킹
내가 잘못 생각하고 있습니까?
ruby-1.8.7-p352 :003 > [0b1101001010101101111010100101010011010101010110010101010101010010010101001010101010101011101010101010101111010101010101010101].pack('i')
RangeError: bignum too big to convert into `unsigned long'
from (irb):3:in `pack'
from (irb):3
이 번호는 DNS 쿼리 패킷을 표현하도록되어 (이 숙제입니다, 우리는 어떤 DNS 라이브러리를 사용할 수 없습니다 것).
이 버전은 오류없이 상당한 비트 수를 제거합니다. 예제는 다음과 같습니다 :'[b1010_1010_1011_1101_0101_0101_0101_0101] .pack ("i"). – WarHog