获得徽章 0
赞了这篇沸点
赞了这篇沸点
大家都知道,计算机中只有0和1,那么如果想要在计算机中表示一个负数,要怎么表示呢?首先计算机中数值都是用二进制表示的,一个字节占8位,所以一个字节最多能表示的数值范围是0到255,如果考虑到正负数的话,那么一个字节最多能表示的数值范围就是-128到127,为什么一个字节负数的范围最小是-128呢?等下理解了补数,就知道了负数的最小值是怎么得来的了。补数就是用正数来表示的负数。
获得补数的方法,先将正数的二进制各数位上的数值取反,然后再将结果+1,这样就得到了该正数对应的负数。
为什么是这样计算出来的呢?因为计算机中是没有减法的,举个例子,1-1在计算机中是1+(-1)。然后,我们要知道,正数和对应的负数相加是等于0的,我们通过1+(-1)的二进制来计算说明。
1的二进制为: 0000 0001
通过上面求补数的方法,得出
-1的二进制为: 1111 1111
将两个二进制相加,得到 1 0000 0000
因为我们这里用的是一个字节,所以高位溢出,最终的结果为 0000 0000。
在计算机中,使用最高位作为符号位来代表正数和负数,最高位0为正数,最高位1为负数。
所以,
最大的正数为: 0111 1111,转为10进制为127。
按正常表示来说,最小的负数应该为:
1111 1111,转为10进制为-127。
但是!但是!但是!0和-0是同一个数,所以,为了弥补少了的这一个-0,即二进制
1000 0000,规定 1000 0000 为 1111 1111 的下一个数,即 -128。
虽然直观上不容易理解,但是逻辑上却非常严谨。
比如,128+(-128),
128的二进制为: 1000 0000
-128的二进制为: 1000 0000
得到 1 0000 0000
高位溢出,丢弃,得到结果为: 0000 0000。
同理,有符号的4个字节,8个字节的取值范围也是这样计算出来。
获得补数的方法,先将正数的二进制各数位上的数值取反,然后再将结果+1,这样就得到了该正数对应的负数。
为什么是这样计算出来的呢?因为计算机中是没有减法的,举个例子,1-1在计算机中是1+(-1)。然后,我们要知道,正数和对应的负数相加是等于0的,我们通过1+(-1)的二进制来计算说明。
1的二进制为: 0000 0001
通过上面求补数的方法,得出
-1的二进制为: 1111 1111
将两个二进制相加,得到 1 0000 0000
因为我们这里用的是一个字节,所以高位溢出,最终的结果为 0000 0000。
在计算机中,使用最高位作为符号位来代表正数和负数,最高位0为正数,最高位1为负数。
所以,
最大的正数为: 0111 1111,转为10进制为127。
按正常表示来说,最小的负数应该为:
1111 1111,转为10进制为-127。
但是!但是!但是!0和-0是同一个数,所以,为了弥补少了的这一个-0,即二进制
1000 0000,规定 1000 0000 为 1111 1111 的下一个数,即 -128。
虽然直观上不容易理解,但是逻辑上却非常严谨。
比如,128+(-128),
128的二进制为: 1000 0000
-128的二进制为: 1000 0000
得到 1 0000 0000
高位溢出,丢弃,得到结果为: 0000 0000。
同理,有符号的4个字节,8个字节的取值范围也是这样计算出来。
展开
评论
9
赞了这篇沸点
赞了这篇沸点
食不食油饼啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!吃个饭给我 吃emo了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
展开
3
9
![[看]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_97.39cdc9f.png)