第1个回答 2011-05-25
首先:任何信息在计算机中都存储为以字节为单位的0,1序列.
其次,整数分为符号整形和无符号整形,符号整形字节最高位为符号位,整数该位为0,负数该位为1
-1转化为2进制即为-1在2进制中的表示,一个字节(8位)足以表示-128 - 127的符号整数范围.
最高位符号位,二进制转为十进制的计算为:-1的最高位是指数幂*2(n-1) + 位i上的数字*2(i)...:
由此可得-1的字节表示为11111111.
而二进制的11111111转化为十进制,应该为多少?应该看转化成的十进制是无符号还是有符号,而且要看整形占用多少字节.
如果转换成符号整数,整形占用2个字节以上,11111111实际上存储表示为00000000 11111111
故为255.
如果转换成符号整数,整形占用1个字节,那么显然应该为-1
...
综上所述,理解了整形以字节为基础的存储方式,这些东西不难理解.
第2个回答 2011-05-25
-1的原码是10000001,它有符号位,其中开头的1指的是“—”号,反码为11111110,补码为111111111
而后面所说的11111111指的无符号位数,即255
追问在计算器中怎么用二进制表示-1,使其在转化为十进制的时候可以显示为-1。或者说计算器中十进制-1转化为二进制为11111111(字节),而再把二进制的11111111转化为十进制为什么不是-1呢?
追答在计算机中所有的数值 都是用补码表示的,你说的应该不可以实现吧。反正我不知道
而后而所说的就是有符号数和无符号数的区别,8位无符号的范围0~255,而有符号数则是-128~127,
第4个回答 2019-06-28
进制转换的前提是选用统一的字节单位,然后进行转换,你的提问应该描述为:
计算器中以1字节(8位)为单位,的十进制-1转化为二进制为11111111;
而以字(计算器中的字表示2字节即16位)为单位,的二进制11111111即(0000 0000 1111 1111)
转换为十进制用计算器就是255,这样描述就没错。
如果按照你的描述,“二进制的11111111转化为十进制就是255”,这种描述本身就是错误的,因为如果以1字节(8位)的二进制11111111转化为十进制那么就是-1了而不是255了,如下图详解:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/8cb1cb1349540923dde6c59f9c58d109b2de4947?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)