作业帮 > 数学 > 作业

符号数的扩展把一个8位的二进制扩展为一个16位的二进制数.书上说,无符号数,高八位全是0有符号数,扩展的高八位用原来数的

来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/05/14 11:11:09
符号数的扩展
把一个8位的二进制扩展为一个16位的二进制数.
书上说,无符号数,高八位全是0
有符号数,扩展的高八位用原来数的符号来扩展,不是全0就是全1
我想问的是,既然都说是有符号数了,他的符号位不就是1吗?怎么会有0的情况?请高手举两个例子区别一下!谢拉!
符号数的扩展把一个8位的二进制扩展为一个16位的二进制数.书上说,无符号数,高八位全是0有符号数,扩展的高八位用原来数的
你理解错了!
有符号数是用最高位是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,这样才是带符号扩展的.这不是本质,只是一个规律而已!