gpt4 book ai didi

java - Clojure - 提取整数最后 N 位的最快方法?

转载 作者:搜寻专家 更新时间:2023-11-01 02:30:32 25 4
gpt4 key购买 nike

我需要一个函数来提取整数中的最后 N 位(N < 32,所以结果总是正数)。我自己似乎无法解决。

我的第一种方法是左移 (32 - n) 位然后右移 (32 - n) 位,但是 Clojure 将第一个结果转换为 BigInt 因此我无法摆脱前 32-n 位。

有人可以帮忙吗?谢谢!

最佳答案

我想你想要的是按位使用的东西,例如:

(defn low-bits [x n]
"Get the lowest n bits of x"
(bit-and x (unchecked-dec (bit-shift-left 1 n))))

n 8(bit-shift-left 1 8) 得到 256,然后 (dec 256) 得到 255,一个设置了最低 8 位和较高位 0 的数字。然后按位和将给我们一个数字,其中最低 8 位是它们在 x 中的任何内容,而较高位都是 0 (我觉得你想要什么?)。

免责声明:这可能是我编写的第 4 个 Clojure 函数,所以我也只是在学习...

关于java - Clojure - 提取整数最后 N 位的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10492361/

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