java 干嘛的,>>在Java中做什么?

小编典典

计算机是二进制设备。因此,数字由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)

2020-09-15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值