java中关于<<,>>,>>>

1,在计算机中,数据都是以补码的形式存在的,
2,正数二进制数据的原码、反码、补码都是相同的,
如 5,java中,int占四个字节,所以它的原码、反码补码均为00000000 00000000 


00000000 00000101,首位0表示正数
举个例子,14的几个操作,
14>>2;分析14的原码、反码、补码为:00000000 00000000 00000000 00001110;
右移2位,高位补充符号位,此处符号位为0;所以结果为3


14>>>2;与上一个一样,只不过高位补充的是0,在这里结果也为3


14<<2:左移2位,低位补充0,可以得到结果为56


3,负数二进制数的原码、反码、补码基本不相同(-8的原码和补码是相同的)
如-5,原码为10000000 00000000 00000000 00000101,反码 11111111 11111111 


11111111 11111010,符号位不变,补码为11111111 11111111 11111111 11111011,在


反码的基础上加1。
4、几个基本的操作,-14的原码为100000000 00000000 00000000 00001110,反码为


11111111 11111111 11111111 11110001,补码为11111111 11111111 11111111 


11110010,
-14<<2;低位补充0,补码为11111111 11111111 11111111 11000100;所以反码为


11111111 11111111 11111111 1100011,原码为10000000 00000000 00000000 


0011100,也就是数字-56;
-14>>2;高位补充的是符号位,补码为11111111 11111111 11111111 11111100;
反码为11111111 11111111 11111111 11111011,原码为10000000 00000000 00000000 


00000100;所以结果为-4;
-14>>>2,高位补充的是0,补码为00111111 11111111 11111111 11111100;这是一个正


数,反码,补码,原码都是相同的,也就是数字1073741820。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值