Ruby:将整数转换为32位二进制数(或字符串)
我想将一个数字(例如1)转换为32位二进制数:Ruby:将整数转换为32位二进制数(或字符串),ruby,binary,integer,Ruby,Binary,Integer,我想将一个数字(例如1)转换为32位二进制数: 00000000000000000000000000000001 如何确保整个字符串的长度为32,而不管该数字有多小 我有一个用于8位二进制的sprintf,但不确定如何将其设置为32位。使用: 使用: 通过sprintf: 通过sprintf: 使用和: L表示32位无符号整数,>表示大端数。B表示位字符串,*输出所有可用位 当超过32位无符号整数范围时,这将自动结束: [4_294_967_294].pack('L>').unpac
00000000000000000000000000000001
如何确保整个字符串的长度为32,而不管该数字有多小
我有一个用于8位二进制的sprintf,但不确定如何将其设置为32位。使用:
使用:
通过sprintf:
通过sprintf:
使用和:
L表示32位无符号整数,>表示大端数。B表示位字符串,*输出所有可用位
当超过32位无符号整数范围时,这将自动结束:
[4_294_967_294].pack('L>').unpack1('B*') #=> "11111111111111111111111111111110"
[4_294_967_295].pack('L>').unpack1('B*') #=> "11111111111111111111111111111111"
[4_294_967_296].pack('L>').unpack1('B*') #=> "00000000000000000000000000000000"
[4_294_967_297].pack('L>').unpack1('B*') #=> "00000000000000000000000000000001"
使用和:
L表示32位无符号整数,>表示大端数。B表示位字符串,*输出所有可用位
当超过32位无符号整数范围时,这将自动结束:
[4_294_967_294].pack('L>').unpack1('B*') #=> "11111111111111111111111111111110"
[4_294_967_295].pack('L>').unpack1('B*') #=> "11111111111111111111111111111111"
[4_294_967_296].pack('L>').unpack1('B*') #=> "00000000000000000000000000000000"
[4_294_967_297].pack('L>').unpack1('B*') #=> "00000000000000000000000000000001"
[1].pack('L>').unpack1('B*')
#=> "00000000000000000000000000000001"
[4_294_967_294].pack('L>').unpack1('B*') #=> "11111111111111111111111111111110"
[4_294_967_295].pack('L>').unpack1('B*') #=> "11111111111111111111111111111111"
[4_294_967_296].pack('L>').unpack1('B*') #=> "00000000000000000000000000000000"
[4_294_967_297].pack('L>').unpack1('B*') #=> "00000000000000000000000000000001"