欢迎!有关该功能的更多信息,请参阅关于页面。
(bit-shift-left 0xfffffff0 4) 返回 0xffffff0f,而我期望它返回 0xffffff00。类似地,(bit-shift-left 0xfffffff0 8) 返回 0xfffff0ff 等。
(bit-shift-left 0xfffffff0 4)
0xffffff0f
0xffffff00
(bit-shift-left 0xfffffff0 8)
0xfffff0ff
我检查了实现,发现 bit-shift-left 会将所有参数转换为 Long,然后调用 Java 的 << 操作符,它应该丢弃高位而不是旋转位。
bit-shift-left
Long
<<
左移位和输出之间可能出了点问题。这看起来对吗?
user> (format "%x" (bit-shift-left 0xfffffff0 4)) "fffffff00"