Я пытаюсь вернуть байтовый массив, содержащий два дополнения представления Bignum или Fixnum (в Ruby).В Java есть метод, который делает именно это - Документы: Java toByteArray () метод , код для него: https://gist.github.com/867409
Мои требования такие же, как и для метода Java (взяты изСтраница Java): Массив байтов будет иметь порядок байтов в старшем порядке: самый старший байт находится в нулевом элементе.Массив будет содержать минимальное количество байтов, необходимое для представления этого BigInteger, включая, по крайней мере, один знаковый бит, равный (ceil((this.bitLength() + 1)/8))
.
. В Ruby отсутствует оператор >>>
, который (я думаю)почему у меня так много проблем с преобразованием этой концепции в Ruby.
Добавление неработающего кода:
def to_byte_array(num)
result = []
until num == 0
result = [num & 0xff] + result
num = num >> 8
end
result
end