二进制强制转换为3位短到6位int

时间:2013-10-12 21:41:46

标签: casting binary bits short twos-complement

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

short num = -3;
int y = num;
二进制中的

“num”= 101,y = 000101或101000或111101 ......等等?

投射到更多位的规则是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的示例中,num将进行符号扩展以适合6位,这意味着符号位被复制到y的高3位。由于num为负,其符号位为“1”,结果为111101。