概述
1、原码
正数:正数的原码就是本身二进制,最高位是0
负数:负数的原码就是对应正数的二进制,最高位变成1
byte类型的10
原码:0000 1010
byte类型的-10
原码:1000 1010
2、反码
正数:正数的反码和原码相同
负数:负数的反码是原码最高位不变,其他位按位取反
byte类型的10
原码:0000 1010
反码:0000 1010
byte类型的-10
原码:1000 1010
反码:1111 0101
3、补码
正数:正数的补码和原码相同
负数:负数的补码是负数反码+1
byte类型的10
原码:0000 1010
反码:0000 1010
补码:0000 1010
byte类型的-10
原码:1000 1010
反码:1111 0101
补码:1111 0110
4、byte类型的127+1和-128
byte占一字节8位,表示范围是-128~127
127+1其实已经数据溢出了,但是通过强制类型转换可以得到1000 0000,也就是-128
为什么-128是1000 0000呢?
这里要说到8位表示范围是256个数字,但是要表示正负,所以实际表示范围其实是-128~127,这里0算作正数处理。
但是还有一个问题,最高位是当作符号位使用,并不参加数值的表示,那怎么表示-128呢?
我们数字都有正负,这里的0也不例外,存在+0和-0,我们把+0当作我们平时认知的0,而-0就当作-128了,这样又可以表示-128,又解决了最高位的符号位问题。
最后
以上就是跳跃胡萝卜为你收集整理的原码、反码、补码、byte类型的127+1和-128的全部内容,希望文章能够帮你解决原码、反码、补码、byte类型的127+1和-128所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复