我只是试图在将较小的比特大小值(例如short)分配给较大的一个(如int或double)时对规则进行一些澄清。假设一个使用二进制补码算法的6位机器用于有符号整数,当我将较少数量的位转换为更多位时会发生什么?它是将所有零或全部添加到结尾还是开头?不确定,任何帮助将不胜感激。即:
short num = -3;
int y = num;
二进制中的“num”= 101,y = 000101或101000或111101 ......等等?
投射到更多位的规则是什么?
谢谢!
答案 0 :(得分:1)
在您的示例中,num
将进行符号扩展以适合6位,这意味着符号位被复制到y
的高3位。由于num
为负,其符号位为“1”,结果为111101。