Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby:将整数转换为32位二进制数(或字符串)_Ruby_Binary_Integer - Fatal编程技术网

Ruby:将整数转换为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

我想将一个数字(例如1)转换为32位二进制数:

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"