整数を8ビットの2の補数表現で表している。
次の2つの数の和との値として、10進数表現として正しいものはどれか。
00001010 + 11110001
@ −6
A −5
B −4
C 250
D 251
まずは2つの数の和を求める。
00001010 + 11110001 = 11111011
11111011が2の補数表現だから すべてのビットを反転させ、1を加えると、
00000100+1 = 00000101 となる。
これを10進数で表すと、
4+0+1 = 5
2の補数で表されているので負の値であるから 答えは −5となる。
【別解】
00001010をすべてのビットを反転させ1を加えると 11110110
11110001をすべてのビットを反転させ1を加えると 00001111
足し算すると 100000101。
9桁目が1となるので、 −5。