Ruby – 从变量获取位范围
发布时间:2020-12-17 04:00:39 所属栏目:百科 来源:网络整理
导读:我有一个变量,并希望从该变量中获取一系列位.我想要最干净的方式来做到这一点. 如果x = 19767并且我想要bit3 – bit8(从右边开始): 100110100110111是二进制的19767. 我想要括号100110(100110)111中的部分所以答案是38. 使用Ruby实现以下功能的最简单/最干
我有一个变量,并希望从该变量中获取一系列位.我想要最干净的方式来做到这一点.
如果x = 19767并且我想要bit3 – bit8(从右边开始): 使用Ruby实现以下功能的最简单/最干净/最优雅的方法是什么? bit_range(orig_num,first_bit,last_bit) PS.对计算密度较小的答案的奖励积分. 解决方法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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |