整数を8ビットの2の補数表現で表している。次の2つの数の和の値として、10進数表現として正しいものはどれか。
00001010 + 11110001
@ -6 A -5 B -4 C 250 D 251
A
2の補数は、整数を2進数で表現し、全ビットを反転させて、1を加えた値である。最上位ビットが1の時がマイナス値を表す。
(00001010)2 は 10進数で 23+21 = 10
(11110001)2 は、最上位ビットが1なのでマイナス値であり、全ビットを反転させて、1を加えると
(00001111)2 = 23+22+21+20 = 15
従って、(11110001)2 = -15
よって、
10+ (-15) = -5
【別解】
00001010 + 11110001 = 11111011
最上位ビットが1なのでマイナス値であり、全ビットを反転させて、1を加えると
(00000101)2 = 5
従って、(11111011)2 = -5
V−3 | 目次 | V−5 |