ホームへ
コンピュータサイエンス1のトップページへ

2の補数の計算

下記の2進数の計算について、結果を10進数で答えること
※オーバーフローと2の補数を考慮すること

問題1

2進数7桁の足し算「0011010+1011101」の結果を10進数で計算すること

解答1

0011010 + 1011101 = 1110111
→一番大きな桁が1なので、この数はマイナスの数(2の補数の方法で10進数に直す)

1110111 - 1 = 1110110
1110110の0と1を反転させて0001001

(0001001)2
= (0×26 + 0×25 + 0×24 + 1×23 + 0×22 + 0×21 + 1×20)10
= (8 + 1)10
= (9)10

答え: -9

問題2

2進数5桁の足し算「11001+11001」の結果を10進数で計算すること

解答2

11001 + 11001 = 110010
→5桁の計算なので、桁あわせし(5桁目を削除し)、10010 →一番大きな桁が1なので、この数はマイナスの数(2の補数の方法で10進数に直す)

10010 - 1 = 10001
10001の0と1を反転させて01110

(01110)2
= (0×24 + 1×23 + 1×22 + 1×21 + 0×20)10
= (8 + 4 + 2)10
= (14)10

答え: -14

問題3

2進数8桁の足し算「11011011+10001000」の結果を10進数で計算すること

解答3

11011011 + 10001000 = 101100011
→8桁の計算なので、桁あわせし(9桁目を削除し)、01100011
→一番大きな桁が0なので、この数はプラスの数

(01100011)2
= (0×27 + 1×26 + 1×25 + 0×24 + 0×23 + 0×22 + 1×21 + 1×20)10
= (64 + 32 + 2 + 1)10
= (99)10

答え: 99

問題4

2進数6桁の足し算「001001+111000」の結果を10進数で計算すること

解答4

001001 + 111000 = 1000001
→6桁の計算なので、桁あわせし(7桁目を削除し)、000001
→一番大きな桁が0なので、この数はプラスの数

(000001)2
= (0×25 + 0×24 + 0×23 + 0×22 + 0×21 + 1×20)10
= (1)10

答え: 1

問題5

2進数8桁の足し算「11111111+00100111」の結果を10進数で計算すること

解答5

11111111 + 00100111 = 100100110
→8桁の計算なので、桁あわせし(9桁目を削除し)、00100110
→一番大きな桁が0なので、この数はプラスの数

(00100110)2
= (0×27 + 0×26 + 1×25 + 0×24 + 0×23 + 1×22 + 1×21 + 0×20)10
= (32 + 4 + 2)10
= (38)10

答え: 38

問題6

2進数9桁の足し算「110001101+000011011」の結果を10進数で計算すること

解答6

110001101 + 000011011 = 110101000
→一番大きな桁が1なので、この数はマイナスの数(2の補数の方法で10進数に直す)

110101000 - 1 = 110100111
110100111の0と1を反転させて001011000

(001011000)2
= (0×28 + 0×27 + 1×26 + 0×25 + 1×24 + 1×23 + 0×22 + 0×21 + 0×20)10
= (64 + 16 + 8)10
= (88)10

答え: -88

問題7

2進数5桁の数「00110」を5倍した結果を10進数で計算すること

解答7

(00110)2×(5)10 = (00110 + 00110 + 00110 + 00110 + 00110)2 = (11110)2
→一番大きな桁が1なので、この数はマイナスの数(2の補数の方法で10進数に直す)

11110 - 1 = 11101
11101の0と1を反転させて00010

(00010)2
= (0×24 + 0×23 + 0×22 + 1×21 + 0×20)10
= (2)10

答え: -2

問題8

2進数7桁の数「1100110」を4倍した結果を10進数で計算すること

解答8

(1100110)2×(4)10 = (1100110 + 1100110 + 1100110 + 1100110)2 = (110011000)2
→7桁の計算なので、桁あわせし(8~9桁目を削除し)、0011000
→一番大きな桁が0なので、この数はプラスの数

(0011000)2
= (0×26 + 0×25 + 1×24 + 1×23 + 0×22 + 0×21 + 0×20)10
= (16 + 8)10
= (24)10

答え: 24

問題9

2進数5桁の数「11100」を左に2ビットシフトした結果を10進数で計算すること

解答9

11100を左に2ビットシフト = 1110000
→5桁の計算なので、桁あわせし(6~7桁目を削除し)、10000
→一番大きな桁が1なので、この数はマイナスの数(2の補数の方法で10進数に直す)

10000 - 1 = 01111
01111の0と1を反転させて10000

(10000)2
= (1×24 + 0×23 + 0×22 + 0×21 + 0×20)10
= (16)10

答え: -16

問題10

2進数10桁の数「0001101011」の左に4ビットシフトした結果を10進数で計算すること

解答10

0001101011を左に4ビットシフト = 00011010110000
→10桁の計算なので、桁あわせし(11~14桁目を削除し)、1010110000
→一番大きな桁が1なので、この数はマイナスの数(2の補数の方法で10進数に直す)

1010110000 - 1 = 1010101111
1010101111の0と1を反転させて0101010000

(0101010000)2
= (0×29 + 1×28 + 0×27 + 1×26 + 0×25 + 1×24 + 0×23 + 0×22 + 0×21 + 0×20)10
= (256 + 64 + 16)10
= (336)10

答え: -336


Copyright (C) Junko Shirogane, Tokyo Woman's Christian University 2018, All rights reserved.