符号数的扩展
发布网友
发布时间:2022-04-24 17:03
我来回答
共1个回答
热心网友
时间:2023-10-24 14:49
你理解错了!
有符号数是用最高位是0或1来标记正负的,如果最高位是0(如8位数中的第7位,从0位开始算的)表示正数,而是1表示负数。16位数中的第15位控制符号。符号数扩展实称为带符号扩展。
只是位数的扩展,不能改变原值的!
如0000
1101这个数是带符号数为13,扩展为16位时,一个16位数也要是13的!而这个数是0000
0000
0000
1101就可以了!所以正数的带符号扩展前边是加0,这只是一个规律而不是本质,本质就是数大小不改变!
而1000
1101带符号数不是-13的!而是将其取补加1就是负数结果,即-0111
0010
+
1,结果就是-113,如果将这个带符号数扩展时,只有16位1111
1111
1000
1101才是-113,扩展只是表示范围大了,而不是改变数值的。如果是正数前8位是0,如果是负数,前8位是1,这样才是带符号扩展的。这不是本质,只是一个规律而已!