c语言基础性问题。

2024-11-21 21:33:15
推荐回答(3个)
回答1:

哪块儿想不明白啊?
(10000000 ~ 01111111)2 是说以二进制显示;
(-128 ~127)10 是说以十进制显示,
二进制10000000对应的十进制就是-128.
在无符号时,(11111111)b,这8个1都要当作数字来看待;
在带符号时,(11111111)b,这8个1中最高位(最左边的那个1)代表负号,若是0代表正号。负数是用补码表示

回答2:

计算机组成原理学过吗?
无符号(11111111)b就是把它看成正数来处理,正数的原码,反码,补码都是本身;而负数的反码是符号位不变,其他位取反,负数的补码就是负数的反码加一。所以如你说的:
在一个字长是 8 位的计算机系统中,若把(11111111)b
看成无符号数时其真值是( 255 )d
看成带符号数时其真值是( -1 )d
明白了吗 ???

回答3:

无符号数就是255
有符号数首位1为符号表示负,负数是用补码表示的,换成原码就是1,所以是-1