A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

byte是一个字节占一位,一个字节有8位, 正数最大表示为0111 -1111  =127  这个我知道    那么最小的负数不应该是1111-1111吗   ?为什么网上说最小的负数应该是1000-0000呢  不解。

15 个回复

正序浏览
tommychang 发表于 2015-8-30 09:50
要清楚原码,反码、补码定义的本质哈,在计算机中,正数是直接用原码表示的,负数用补码表示。1111-1111实 ...

进制数与溢出相关,分析通透,学习了
回复 使用道具 举报
alogol 发表于 2015-8-30 16:44
一个字节(即8个二进制位)的取值范围是-128~127,所以1000-0000表示的是-128(这也符合前面为1就是负数的 ...

懂了就是128超出了一个字节的范围了  所以只到127要是取128的话就要改变数据大小   谢了
回复 使用道具 举报
不明觉厉!!!
回复 使用道具 举报
本帖最后由 alogol 于 2015-8-30 16:51 编辑
boboyuwu 发表于 2015-8-30 16:33
1000-0000  最高位是1代表负数对吧。  我们取反加1得到的还是1000-0000  这个理论上应该是+128对吧,为什 ...

一个字节(即8个二进制位)的取值范围是-128~127,所以1000-0000表示的是-128(这也符合前面为1就是负数的原则),如果要表示128只能取多一个或多个字节再在前面补上0
回复 使用道具 举报
alogol 发表于 2015-8-30 13:55
正负转换是取反加1,1111-1111取反是0000-0000,加1就是0000-0001,即1。所以1111-1111就是-1 ...

1000-0000  最高位是1代表负数对吧。  我们取反加1得到的还是1000-0000  这个理论上应该是+128对吧,为什么最高位还是1,既然最高位是1代表负数那么  这个转换后的1000-0000表示+128计算机怎么区分呢
回复 使用道具 举报
alogol 发表于 2015-8-30 15:11
负数不能这样直接算出数值的。算出正数才可以确定负数的值,而负数取反加1是对应的正数的值,所以1111-11 ...

受教了!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
boboyuwu 发表于 2015-8-30 15:02
1111 -1111 为什么要取反?    你不知道1111 - 1111  代表是- 255吗

负数不能这样直接算出数值的。算出正数才可以确定负数的值,而负数取反加1是对应的正数的值,所以1111-1111取反加1得出正数1,对应的负数是-1,所以说1111-1111不是-255而是-1
回复 使用道具 举报 0 1
alogol 发表于 2015-8-30 13:55
正负转换是取反加1,1111-1111取反是0000-0000,加1就是0000-0001,即1。所以1111-1111就是-1 ...

1111 -1111 为什么要取反?    你不知道1111 - 1111  代表是- 255吗
回复 使用道具 举报
..........
回复 使用道具 举报
alogol 中级黑马 2015-8-30 13:55:12
7#
boboyuwu 发表于 2015-8-30 10:54
你说错了吧11111111你从哪得到是负一的

正负转换是取反加1,1111-1111取反是0000-0000,加1就是0000-0001,即1。所以1111-1111就是-1
回复 使用道具 举报
byte是一个八位,如果用二进制的byte表示128则是1000-0000,-128的二进制是正128的二进制取反再加1,也就是0111-1111+1那么他的值还是1000-0000即十进制的128,所以为了区分正128和负128byte的取值范围只能是,-128到整的127
回复 使用道具 举报
boboyuwu 来自手机 高级黑马 2015-8-30 10:54:29
报纸
tommychang 发表于 2015-8-30 09:50
要清楚原码,反码、补码定义的本质哈,在计算机中,正数是直接用原码表示的,负数用补码表示。1111-1111实 ...

你说错了吧11111111你从哪得到是负一的
回复 使用道具 举报
asinzuo 来自手机 中级黑马 2015-8-30 10:07:07
板凳
不明觉厉,,,
回复 使用道具 举报
学习了,还有点不太明白
回复 使用道具 举报
要清楚原码,反码、补码定义的本质哈,在计算机中,正数是直接用原码表示的,负数用补码表示。1111-1111实际上表示的是-1,而1000-0000表示负数,则其反码加一表示其的数值,即 0111-1111 +1则为十进制的128,所以其本身的数值为-128。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马