【问题标题】:return a number with the first X bits set返回一个设置了前 X 位的数字
【发布时间】:2009-07-14 18:21:55
【问题描述】:

在 clojure 中实现这一目标的更有效方法是什么:

(定义的 ([n] (个数 n 1 1)) ([n i res] (如果 (

当涉及到数字类型时,最好它仍然应该“做正确的事”。

【问题讨论】:

    标签: functional-programming clojure


    【解决方案1】:

    为什么不取 2^(X-1)(只设置第 X 位)然后减 1?

    【讨论】:

    • 这给了你最后 X 位。 ~(2^(width of type - X) - 1) 会做到的。
    • 哦,我明白了,我错误地认为“第一”是指“最不重要”。
    • 我确实想要最低有效位。 (一个 4)=> 15
    • 求幂真的会比移位序列快吗?
    • 这个代码是 (defn ones [x] (- (bit-set 0 x) 1) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 2015-12-27
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2016-11-01
    • 2016-06-16
    • 2022-12-05
    相关资源
    最近更新 更多