java中 gt 是什么_>>在java中做什么?

那么有人可以解释它,就像他们正在和一个孩子说话一样吗?

解决方法:

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

Bitshifting只是向左或向右移动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).注意指数如何对应于数字位置.

二进制数系统或base-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,operators,bit-shift

来源: https://codeday.me/bug/20190923/1813499.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值