如何在Ruby中存储两个32位整数中的64位整数 正如标题所说,在Ruby中如何实现这个问题,我有点迷惑……在C或C++中有很多关于如何做到这一点的话题。任何一位ruby专家都可以插话吗?

如何在Ruby中存储两个32位整数中的64位整数 正如标题所说,在Ruby中如何实现这个问题,我有点迷惑……在C或C++中有很多关于如何做到这一点的话题。任何一位ruby专家都可以插话吗?,ruby,bit-manipulation,Ruby,Bit Manipulation,一个64位整数不等于两个32位整数 )在ruby中使用与C中相同的语法,只需删除类型转换: n = 0xFFFFFFFFEEEEEEEE x = (n & 0xFFFFFFFF00000000) >> 32 y = n & 0xFFFFFFFF puts x.to_s(16) # => "ffffffff" puts y.to_s(16) # => "eeeeeeee" v = x << 32 | y puts v.to_s(16) # =&

一个64位整数不等于两个32位整数


)

在ruby中使用与C中相同的语法,只需删除类型转换:

n = 0xFFFFFFFFEEEEEEEE
x = (n & 0xFFFFFFFF00000000) >> 32
y =  n & 0xFFFFFFFF
puts x.to_s(16)
# => "ffffffff"
puts y.to_s(16)
# => "eeeeeeee"
v = x << 32 | y
puts v.to_s(16)
# => "ffffffffeeeeeeee"
n=0xffffffeeee
x=(n&0xFFFFFF00000000)>>32
y=n&0xFFFFFFFF
将x.to_s(16)
#=>“ffffffff”
将y.to_(16)
#=>“eeeeee”
v=x“FFFFFFEEEEEE”

如果您需要将值分成正好32位的块(即,您需要对某些外部数据文件或程序说二进制),那么您需要使用并获取正确的位。

您只是试图存储值,还是试图将值表示为两个32位整数?也就是说,您是在尝试获取数据然后将其拆分为两半,还是希望同时支持添加两个64位值,每个值用两个32位值表示,等等?后者的问题是,我有一个64位整数值需要传递给服务进行跟踪,它们只接受32位整数值,所以我需要将64位的值拆分为2个32位的值,稍后我可以将它们重新存储在一起。那么在这里是如何完成的呢?我只需要将64位整数按位移位进行拆分,我知道它在C语言中是可行的