我是靠谱客的博主 跳跃胡萝卜,最近开发中收集的这篇文章主要介绍原码、反码、补码、byte类型的127+1和-128,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部