2の補数表現の16ビットの即値 0xFFF6 を、符号拡張によって32ビットにした。得られるビット列と、それが表す値の組合せとして正しいものはどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 B0xFFFFFFF6(−10)
解説
正解は「0xFFFFFFF6(−10)」です。符号拡張は、上位に元の最上位ビット(符号ビット)をコピーして桁を増やす操作で、2の補数表現の値を変えずにビット幅を広げられます。0xFFF6 は最上位ビットが1なので負の数で、各ビットを反転して1を加えると 0x000A となるため、−10 を表します。上位16ビットを1で埋めた結果も −10 です。「0x0000FFF6(65526)」は上位を0で埋めるゼロ拡張の結果で、値が変わってしまいます。「0xFFF60000(−655360)」は16ビット左シフトした値です。「0xFFFFFFF6(4294967286)」はビット列は正しいものの、符号なし整数として読んだ値で、2の補数としては −10 です。
- #符号拡張
- #2の補数
この調子で論理回路・コンピュータアーキテクチャを続けて解く
▶ この科目の連続演習へ進む(10問)