一个负数,它的补码用12bits回表示。要求将这 12bits的补码转换成 16bits形式的补码

一个负数,它的补码用12bits来表示。要求将这 12bits的补码转换成 16bits形式的补码
一个负数,它的补码本来是用12bits表示出来的。

要求将这 12bits的补码转换成 16bits形式的补码

如何操作?
负数的补码

------解决方案--------------------
应该没问题,把前面补四个1。12bit 数可以考虑用位域
------解决方案--------------------
实际上直接把一个12bits的位域赋值给一个short型也不会错。所以我才好奇他准备怎么表示12bits
------解决方案--------------------
这个是没错,如果你要理论就是这样,我想说的就是你要是想在C语言里实现这个,不用考虑多少位的问题,直接赋值就可以。
------解决方案--------------------
本帖最后由 wangfan027 于 2013-10-31 14:27:28 编辑
引用:
Quote: 引用:

这个是没错,如果你要理论就是这样,我想说的就是你要是想在C语言里实现这个,不用考虑多少位的问题,直接赋值就可以。


我提的这个问题,来自于实际开发当中的问题。
使用C语言当然可以直接赋值,问题是你如何赋值的问题。

一个负数,它的补码用12bits回表示。要求将这 12bits的补码转换成 16bits形式的补码一个负数,它的补码用12bits回表示。要求将这 12bits的补码转换成 16bits形式的补码一个负数,它的补码用12bits回表示。要求将这 12bits的补码转换成 16bits形式的补码一个负数,它的补码用12bits回表示。要求将这 12bits的补码转换成 16bits形式的补码一个负数,它的补码用12bits回表示。要求将这 12bits的补码转换成 16bits形式的补码
我能否这样: 对于 12bits 的负数(补码形式),我直接在前面填上 4个位1,是不是就成了 16bits 形式的 补码了,而且数值没有损失? 
对吗?
对!