首先,如果表示正数
那么N位 ,表示的最大正数就是2^N -1
也就是说,如果是一个字节,8bit, 最大表示的正数是255
如果表示为负数 最大表示范围是 -2^(N-1) ~ 2^(N-1) - 1
也就是说,如果按照绝对值计算,负数的绝对值加上正数的绝对值,
2^(N-1) + 2^(N-1) - 1 就变成了2^N -1
求负数的2进制补码表示形式,先求正数的二进制形式,然后每一位再反转,然后再加1即可。
在计算机中,所有的数据都是以补码的形式来存在的,别提什么原码,反码什么的,记得头疼。只要记住补码就可以了。因为所有数据本来就是以补码存在的,那就只要记住一个就行。
那为什么要以补码的形式来存在呢?那个天才想出来这种存储方法的呢?
参考这个帖子,讲的很详细:
一张时钟图 一分钟理解 计算机补码_旅行呱呱的博客-CSDN博客
我之所以理解钟表的方法表示补码,是我读研的时候,我们老师给我们讲的,当时讲完了之后豁然开朗。