0

short のような小さなビットサイズの値を int や double のような大きなビットサイズの値に割り当てるときのルールについて、いくつか明確にしようとしています。符号付き整数に対して 2 の補数演算を使用する 6 ビット マシンを想定すると、少数のビットを多数のビットにキャストするとどうなりますか? 最後または最初にすべてゼロまたはすべて 1 を追加しますか? よくわかりませんが、助けていただければ幸いです。すなわち:

short num = -3;
int y = num;

バイナリの「num」= 101、y = 000101または101000または111101 ...などですか?

より多くのビットにキャストするためのルールは何ですか?

ありがとうございました!

4

1 に答える 1

1

あなたの例numでは、6 ビットに収まるように符号拡張されます。これは、符号ビットが の上位 3 ビットにコピーされることを意味しますy。は負であるためnum、符号ビットは「1」で、結果は 111101 です。

于 2013-10-17T21:53:48.147 に答える