データの表現 2進数 0と1を使う。 基数(基準になる数)が2. 101(2) かっこで2進数と示すことがある。 コンピュータ内部では、 電気信号がonかoffで情報を表現する。 -> 1と0に対応させる。 2進数 0と1を使う。 基数(基準になる数)が2. 101(2) かっこで2進数と示すことがある。 10進数 365 = 3 x 102 + 6 x 10 + 5 x 1 2進数 101(2) = 1 x 22 + 0 x 2 + 1 x 1 = 5 問題 (1)2進数で、0, 1, 10, ….と 全部で20個順番にノートに書いてみて下さい。 (2)次の2進数の数を、10進数に変換せよ。 a) 110 b) 1011101 c) 11011011
基数(きすう) 10進数 基数は10 0-9を使って書く。 2進数 基数は2 0, 1を使って書く。 x進数のx。 1桁で数えられる数の個数。 10進数 基数は10 0-9を使って書く。 2進数 基数は2 0, 1を使って書く。 16進数 基数は16 0-9, A-Fを使って書く。 数学的には5進数も7進数も可能だが、 コンピュータで使うのは、2進数と16進数が中心。 問題: (1) 16進数で、0, 1, 2…と全部で40個書いて下さい。 (2) 次の16進数の数を10進数に変換して下さい。 a) FA3 b) 2DB
365 A3F 16進数の補足 Fの次は何か? 10 (十と読まない。いちゼロと読む。) 10進数で0, 1, … 9まで数えると、数字が足りなくなって、 次の位に上がって、10になった。 365 10進数 1の位 102=100の位 10の位 16進数 A3F 1の位 162=256の位 16の位
いつ16進数を使うか? コンピュータの内部表現は2進数だが、 0と1の列は読みにくい。 1011100100111101 (2進数) 4個ずつに区切る 1011|1001|0011|1101 B93D (16進数) (2進数)
2進数の小数点以下 0.111(2)= 1 x 1/2 +1 x 1/4 + 1 x 1/8 = 0.5+0.25+0.125 = 0.875 問題 次の2進数の数を10進数にせよ。 a) 101.101 b) 10.0111
10進数を2進数に直す 110(2) = 1 x 4 + 1 x 2 + 0 x 1 = 6 逆に6を与えられて、2進数に直す方法を考える。 6 ÷ 2 = 3 余り 0 3 ÷ 2 = 1 余り 1 1 ÷ 2 = 0 余り 1 110(2)になる。 問題 (1) 次の10進数の数を2進数に変換せよ。 a) 11 b) 23 c) 504 (2) 次の10進数の数を16進数に変換せよ。 a) 35 b) 450 c) 6102
次に演算です。
2進数の計算 足し算 かけ算 + 1 x 1 1 1 1 10 1 1 問題 次の2進数の演算をせよ。 a) 1010+11111 1 x 1 1 1 1 10 1 1 問題 次の2進数の演算をせよ。 a) 1010+11111 b) 11010-1101 c) 1010-11111
補数 n:桁数、b:基数 bの補数 bn-x 253(10進数)の10の補数は、1000-253=747 110(2進数)の2の補数は、2進数の1000-110=10 bn-1-x b-1の補数 253(10進数)の9の補数は、1000-253-1=746 110(2進数)の1の補数は、1000-110-1=001 問題 以下を求めよ。 4651の10の補数 b) 4651の9の補数 c) 110101(2進数)の2の補数 d) 110101(2進数)の1の補数
解答 1000000 - 110101 --------- 001011 問題 4651の10の補数 b) 4651の9の補数 問題 4651の10の補数 b) 4651の9の補数 c) 110101(2進数)の2の補数 d) 110101(2進数)の1の補数 10000-4651=5349 b) 5349-1 = 5348 c) 右の計算 001011 あるいは、 1000000=111111+1 111111-110101=1010 1010+1 = 1011 d) 001011-1 = 001010 これは元の 110101の 反転になっている。 1000000 - 110101 --------- 001011
補数 その2 ビット反転とは、 問題よりわかるように、 1と0の入れ替え 1の補数: ビット反転になっている。 補数 その2 ビット反転とは、 1と0の入れ替え 問題よりわかるように、 1の補数: ビット反転になっている。 2の補数: 1の補数に1を加える。 2n-1-x 2n-1は1がn個並んでいる。 n=4の時、24-1=1111 これからxを引くと、 反転したことになる。
引き算をコンピュータで実行するには。 方法1 符号ビットを用意する。 方法2 補数(ほすう)を使う。 bの補数 n:桁数、b:基数 bn-x 方法1 符号ビットを用意する。 方法2 補数(ほすう)を使う。 bの補数 n:桁数、b:基数 bn-x 2の補数 ビットを反転して、1加える。 110(2進数)の2の補数は、10 もしビット数が3つだとすると、 1000-110 = 010 2の補数をとることが、マイナスに相当する。 a-bの代わりに、bの補数をaに加える。 符号ビットがなくても表現できる。 問題 11100-111(2進数)を、 a) 直接、筆算をして求めよ。 b) 111の「2の補数」を求めて11100に加えよ。