我需要一个提取整数的最后N位的函数(N <32,因此结果总是正数).我似乎无法自己解决这个问题.
我的第一种方法是左移(32-n)位然后右移(32-n)位,但是Clojure将第一个结果转换为BigInt,因此我无法摆脱前32-n位.
有人可以帮忙吗?谢谢!
小智 5
我认为你想要的是使用按位的东西,例如:
(defn low-bits [x n]
"Get the lowest n bits of x"
(bit-and x (unchecked-dec (bit-shift-left 1 n))))
Run Code Online (Sandbox Code Playgroud)
取n 8
,(bit-shift-left 1 8)
给出256,然后(dec 256)
给出255,一个最低8位设置的数字和高位0.然后按位并给出一个数字,其中最低8位是它们所处的位置x
,以及高位都是0(这是你想要的吗?).
免责声明:这可能是我写的第四个Clojure函数,所以我只是在学习......
归档时间: |
|
查看次数: |
606 次 |
最近记录: |