gpt4 book ai didi

Ruby - 从变量中获取位范围

转载 作者:数据小太阳 更新时间:2023-10-29 07:11:39 25 4
gpt4 key购买 nike

我有一个变量,想从该变量中获取一定范围的位。我想要最干净的方式来做到这一点。

如果 x = 19767 并且我想要 bit3 - bit8(从右边开始):100110100110111 在二进制中是 19767。我想要括号 100110(100110)111 中的部分,所以答案是 38。

用 Ruby 实现以下功能的最简单/最干净/最优雅的方法是什么?

bit_range(orig_num, first_bit, last_bit)

附言。计算强度较低的答案可加分。

最佳答案

19767.to_s(2)[-9..-4].to_i(2)

19767 >> 3 & 0x3f

更新:

从头到尾(人们为什么这么说?)...

class Fixnum
def bit_range low, high
len = high - low + 1
self >> low & ~(-1 >> len << len)
end
end

p 19767.bit_range(3, 8)

关于Ruby - 从变量中获取位范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13298978/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com