Clojure中的无符号16位整数

克里斯·墨菲

我想用按位功能(bit-shift-rightbit-and等)Clojure中,其中操作数是16个无符号整数。

16位整数是从0到65535的十进制数,或者是从0000 0000 0000 0000到1111 1111 1111 1111的二进制数。

例如,这里的123是java.lang.Long,因此将产生错误的答案:

(bit-not 123)

我如何使123为无符号的16位整数,以便上面的代码产生正确的答案(十进制为65412)?

因此0000 0000 0111 1011(123)应该变成1111 1111 1000 0100(65412)。

缩图

这有效:

(->> 123
     bit-not
     (bit-and 16rFFFF))
;65412

您可以将其缩短为:

(->> 123
     (bit-and-not 16rFFFF))
;65412

我们使用longs作为unsigned ints的代理JVM没有unsigned ints或longs,无论您使用哪种语言。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以无符号16位整数存储RGB

如何在AVX2中从32位无符号整数转换为16位无符号整数?

如何将16位无符号整数转换为较大的8位无符号整数?

c中的3位无符号整数

在WebGL2中渲染为16位无符号整数2D纹理

16位无符号整数数组,输出的元素多于c中的初始化大小

如何直接在numpy数据类型中为16位无符号整数指定尾数?

在C#中从BitArray转换为16位无符号整数

读取小端16位无符号整数

将int转换为16位无符号短整数

从char数组转换为16位有符号整数和32位无符号整数

如何将 16 位无符号整数转换为 8 位无符号字符并最终返回无符号字符*?

获取无符号整数中位的整数值

为什么 16 位和 32 位整数的有符号和无符号加法转换不同?

将32位整数值转换为无符号16位整数

如何在Java中将有符号的16位整数转换为无符号的16位整数?

24位无符号整数

用两个无符号的16位整数表示一个无符号的32位值

在无符号整数中查找某些位模式

如何在C中创建24位无符号整数

“ 16位整数PCM数据”是指带符号的还是无符号的?

将16位无符号整数数组转换为位的快速方法

在 Perl 中以 4 个无符号字符解码 32 位无符号整数

Python读取无符号16位整数的二进制文件

如何在Matlab中将大量的16位无符号整数转换为ASCII字符串

无符号8位整数的左移运算

设置无符号整数的第n位

使用go lang中的bitshift从32位无符号整数中获取位

C中的有符号和无符号整数的按位非