0

在将较小的位大小值(如short)分配给较大的值(如int或double)时,我只是想澄清一些规则。假设一个 6 位机器对有符号整数使用二进制补码算法,当我将较少的位数转换为较多的位数时会发生什么?它是在结尾还是开头添加全零或全一?不确定,任何帮助将不胜感激。IE:

short num = -3;
int y = num;

二进制中的“num” = 101,y = 000101 或 101000 或 111101 ......等等?

转换为更多位的规则是什么?

谢谢!

4

1 回答 1

1

在您的示例num中,将进行符号扩展以适应六位,这意味着符号位被复制到y. 因为num是负数,所以它的符号位是“1”,结果是 111101。

于 2013-10-17T21:53:48.147 回答