提起二进制,基本的概念大家都知道,计算机语言由1和0组成,比如说,一个int类型的数字2对应的二进制
0000 0000 0000 0000 0000 0000 0000 0010
二进制根据其长度,byte的长度为一个字节8位二进制,Int的长度为四个字节32位二进制.
表示一个数的二进制,第一位表示符号位,1表示负数,0表示正数
比如:byte 0000 0001 是一个正数,1000 0001 是一个负数
Int 0000 0000 0000 0000 0000 0000 0000 0010 正数
1000 0000 0000 0000 0000 0000 0000 0010 负数
对于正数来说,原码,反码,补码都是一样的
对于一个负数而言,这里面有一个概念,原码,反码,补码
那怎么求一个负数的二进制呢?
很简单
第一步:首先给这个负数求绝对值 比如-3 对应3
第二步:写出这个绝对值对应的二进制表示
0000 0000 0000 0000 0000 0000 0000 0011
第三步:使用位运算对这个数字取反
1111 1111 1111 1111 1111 1111 1111 1100
第四步:给取反后的这个二进制值加1
1111 1111 1111 1111 1111 1111 1111 1100
1
1111 1111 1111 1111 1111 1111 1111 1101
这时候得到的这个结果就是-3对应的二进制
其中结果
1111 1111 1111 1111 1111 1111 1111 1101
叫-3的原码
原码取反:
0000 0000 0000 0000 0000 0000 0000 0010
得到其反码
最后加1
0000 0000 0000 0000 0000 0000 0000 0011
得到其补码