gpt4 book ai didi

java ->> 在 Java 中做什么?

转载 作者:太空狗 更新时间:2023-10-29 23:00:48 24 4
gpt4 key购买 nike

好吧,我尝试查找 >>> 或 shift 的含义,但我无法理解这个网站的解释:http://www.janeg.ca/scjp/oper/shift.html

如果与 child 交谈,解释是什么?

最佳答案

计算机是二进制设备。因此,数字由 1 和 0 的序列表示。

位移位就是简单地将 1 和 0 的序列向左或向右移动。

所以所有的>>运算符所做的是将位向右移动一位。

考虑数字 101:

// Assuming signed 8-bit integers
01100101 // How 101 is represented in binary
00110010 // After right shifting one bit, this represents 50

在这种情况下,最低有效位被截断了。显然,细节决定成败,但事实仅此而已。

<<运算符做相反的操作:

// Assuming signed 8-bit integers
01100101 // How 101 is represented in binary
11001010 // After left shifting one bit, this represents -54

// Assuming unsigned 8-bit integers
01100101 // How 101 is represented in binary
11001010 // After left shifting one bit, this represents 202

在这种情况下,最高有效位被截断,因为我只使用了 8 位。但是,如果数字有更多位:

// Assuming signed 16-bit integers
00000000 01100101 // How 101 is represented in binary
00000000 11001010 // After left shifting one bit, this represents 202
00000001 10010100 // After left shifting one bit again, this represents 404

因此,您可能会得到不同的数字,具体取决于您处理的位数以及与这些位相关联的数据类型。

附录:如果您想知道二进制的工作原理,请考虑十进制数字系统的工作原理。考虑数字 5287。它可以这样写:

5287

但是你也可以这样写出来:

5287 = (5 * 1000) + (2 * 100) + (8 * 10) + (7 * 1)

然后你可以这样写:

5287 = (5 * 10^3) + (2 * 10^2) + (8 * 10^1) + (7 * 10^0)

上面的等式解释了为什么十进制数字系统有时被称为以 10 为基数的系统。十进制数字系统使用 10 位数字 (0-9)。请注意指数如何对应于数字位置。

二进制数字系统,或以 2 为底的系统,是完全相同的东西,但以数字 2 作为指数的底数,并且仅使用两个数字:0 和 1。

5287 = 00010100 10100111 (base 2)
= (0 * 2^15) + (0 * 2^14) + (0 * 2^13) + (1 * 2^12)
+ (0 * 2^11) + (1 * 2^10) + (0 * 2^9) + (0 * 2^8)
+ (1 * 2^7) + (0 * 2^6) + (1 * 2^5) + (0 * 2^4)
+ (0 * 2^3) + (1 * 2^2) + (1 * 2^1) + (1 * 2^0)

关于java ->> 在 Java 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3921145/

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