gpt4 book ai didi

Java 对无符号整数进行位移

转载 作者:行者123 更新时间:2023-11-30 08:12:00 25 4
gpt4 key购买 nike

我知道java没有unsigned int,但是从Java SE 8开始,有一些方法可以使用整数数据类型来执行无符号算术。我该如何在java中将位转换为“unsigned int”?

最佳答案

您执行所有按位运算的方式与对有符号 int 执行的方式相同,使用 >>> 右移。 “无符号”功能仅用于输出和转换,它们不影响内部位表示。

例如:

int i = Integer.MAX_VALUE / 1024 - 1023;
System.out.println(Integer.toUnsignedString(i) + "=" + Integer.toBinaryString(i));
i = i >>> 10;
System.out.println(Integer.toUnsignedString(i) + "=" + Integer.toBinaryString(i));
i = i << 21;
System.out.println(Integer.toUnsignedString(i) + "=" + Integer.toBinaryString(i));

结果输出:

2096128=111111111110000000000                // 11 ones, 10 zeros
2047=11111111111 // 11 ones, 0 zeros
4292870144=11111111111000000000000000000000 // 11 ones, 21 zeros

关于Java 对无符号整数进行位移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262779/

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