java负数与⼆进制(原码补码反码科普)
⾸先简单介绍⼀下原码、补码、反码(皆由0、1组成,最⾼位是符号位,0表⽰正,1表⽰负),所谓的这三种码,都是在机器中⽤来表⽰数的(具体细节以后想得起来再补充):
原码:
在⼆进制的基础上在最⾼位添加符号位,如:5(10)=101(2),-5(10)=1101(2)
反码:
正数的反码与原码相同,负数的反码除符号位外逐位取反,如:原码10010(这是负数)= 反码11101
补码:
正数的补码与原码相同,负数的补码除符号位外逐位取反,然后末位加⼀,如:原码10010(这是负数)= 反码11101=补码11110
例如:
-1
1、原码:10000000 00000000 00000000 00000001
补码的最小负数2、反码:11111111 11111111 11111111 11111110
3、补码:11111111 11111111 11111111 11111111
java中的⼆进制⽤补码表⽰,int是32位的,32位每位都要占据,所以没有意义的0也会在变换的时候被改变。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。