假定某台计算机的字长为8位,则十进制数255的补码为??
如果是8位无符号数,则十进制数255的补码为11111111。
如果是有符号数,则该数已经溢出,存储的效果仍是11111111,但取出时系统将解读为-1。
字长8位的有符号范围是-128~127,所以255越界了,没有能够表达255的补码。对于无符号数255是8位字长能表达的最大数,无符号数的补码都是自身,所以还是255;从这个意义上讲,答11111111不该算错。
扩展资料
补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。
总之,补码概念的引入和当时运算器设计的背景不无关系,从设计者角度,既要考虑表示的数的类型(小数、整数、实数和复数)、数值范围和精确度,又要考虑数据存储和处理所需要的硬件代价。因此,使用补码来表示机器数并得到广泛的应用,也就不难理解了。
假定字长为 8 位,十进制数 255 的补码为 11111111,为什么错?
------
8 位的补码,只能表示-128~+127,无法表示十进制数 255。
你非要这么表示,那么,必然就是错误的。
作为补码,1111 1111 代表的,是十进制数-1,而不是 255。
如果你非要把它当成 255,那么,它就是无符号数,并非是补码。
补码,是表示带符号数的。
无符号数,和,补码,是毫不相干的两种概念,不要弄混了。
如果是有符号数,则该数已经溢出,存储的效果仍是11111111,但取出时系统将解读为-1。
255,在 8 位的补码中,是不存在的。