全部问题 > 当前问题

有符号数11111111为什么是-1,第一个数不应该是符号位-吗?那样还剩7个1,不应该是-127吗

匿名课官 2016-1-11 17:30:29

共 4 个回答

王册册 2016-1-11 21:43:46

它并不是表示-1*(1111111),而是在10000000的基础上一直加1。因为11111111比10000000多加了127个1,所以11111111表示-1。那么如果有符号二进制数表示-128~127,10000000一定表示最小的那个数。

王册册 2016-1-11 22:14:44

1个字节它不管怎么样还是只能表示256个数,因为有符号所以我们就把它表示成范围:-128~127。可以这样理解,用最高位表示符号位。 0表示正数,1表示负数,剩下的7位用来储存数的绝对值的话,能表示2^7个数的绝对值,再考虑正负两种情况,2^7*2还是 256个数。 首先定义0在计算机中储存为00000000,对于正数我们依然可以像无符号数那样换算,从00000001到01111111依次表示1到 127。那么这些数对应的二进制码就是这些数的原码。那负数是不是从10000001到11111111依次表示-1到-127? 其实并没有,如果这样的话那么一共就只有255个数了,因为10000000的情况没 有考虑在内。实际上,10000000在计算机中表示最小的负整数, 就是这里的-128,而且实际上并不是从 10000001到11111111依次表示-1到-127,而是刚好相反的,从10000001到 11111111依次表示-127到-1。

匿名课官 2016-1-11 23:42:42

回复 王册册:嗯啊,谢了,太感谢了,你好认真啊

王册册 2016-1-12 08:57:46

问题来自: 进制的转换