2017-05-26 17 views
2

使用して署名された整数(4バイト)に変換する方法等:Iは、符号付き整数に追従4バイトの整数に変換する必要があるルビー

入力65535値-1 入力65534値-2 入力65533値 - 3 のように...

は私がフォローを試してみました:

puts (65533).to_s(16) #=> fffd 
puts (65533).to_s(16).unpack('s') #=> doesn't work properly... return 26214 

誰かが上記のコードで私を助けることができますか? 敬具それ符号なし整数としてとして、その後unpackて符号付き整数としてあなたはpackでき

+0

これは関連性があります。https://stackoverflow.com/questions/9963702/hex-string-to-signed-int-conversion-in-ruby –

答えて

3

:16ビット整数を表す

[65535, 65534, 65533].pack('S*').unpack('s*') 
#=> [-1, -2, -3] 

S/s、あなたも32 L/lを使用することができます-bitまたはQ/q(64ビット版)。

関連する問題