首页 > 编程语言 > 详细

java原码,反码,补码

时间:2021-08-13 10:10:12      阅读:25      评论:0      收藏:0      [点我收藏+]

 java是以补码的形式存在,正数的原码,反码补码都是一样的

负数的补码是:其正数原码,取反码后,再补1.(负数的表现方式是高一位为1)

-1 << 2
原码: 10000000 00000000 00000000 00000001
反码: 11111111 11111111 11111111 11111110
补码: 11111111 11111111 11111111 11111111

左移位后:
原码: 11111111 11111111 11111111 11111100
反码: 10000000 00000000 00000000 00000011
补码: 10000000 00000000 00000000 00000100   =====   -4

 


-10 << 4
原码: 10000000 00000000 00000000 00001010
反码: 11111111 11111111 11111111 00000101
补码: 11111111 11111111 11111111 00000110

左移位后:
原码:
11111111 11111111 11111111 01100000
反码:
10000000 00000000 00000000 10011111
补码:(最后以为补了1)
10000000 00000000 00000000 10100000   ====== -160

32+ 128 = 160 (第一位是1为负数,为-160)

 

 

----------------华丽的分割线----------------------

写完后发现

-1 << 2
-1的二进制: 10000000 00000000 00000000 00000001

-4的二进制: 10000000 00000000 00000000 00000100

不就是把1往左移动了两位吗?

手动滑稽

 

java原码,反码,补码

原文:https://www.cnblogs.com/mark999/p/15135848.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!