情報技術12_03

Download Report

Transcript 情報技術12_03

情報技術
~情報の表現2~
2012年10月25日
笠井俊信
今回の目標
コンピュータにおける情報の表現の基礎である
2進数,16進数による数の表現方法,演算方法
について理解する.
コンピュータ内部での文字の表現方法につい
て理解する.
先週の内容(確認)
① (11001101)2を10進数にしなさい
② (486)10, (1000)10を2進数にしなさい
③ (1A3C)16を2進数,10進数にしなさい
2進数の四則演算
加算
0+0=0
0+1=1
1+0=1
1+1=10 (桁上げ)
10110011
+01100110
10 00 1100 1
2進数の四則演算
減算
0-0=0
0-1=-1 (借り)
1-0=1
1-1=0
10110011
-01100110
10 0110 1
2進数による負の数の表現
• 一定の長さのビット列で負の数を表す方法
ビット:2進数の1桁,バイト:8ビット
(コンピュータでは,扱う情報によって何バイトを用いるか決まっている)
– 符号と絶対値を使う
– かさあげ表現
– 補数表現(2の補数)
• 減算を加算と同じ方法で行える
2の補数表現法
• 2の補数とは,表現したい数値(絶対値)と
加算した結果,桁上がりが生じる数値
– nビットで –2 n-1から +(2 n-1-1)まで表現可能
– 4ビットの時 –2 は1110
負の符号
求め方
1. 表現したい数値の各桁を1から引く.
2. その数値に1を加える.
2の補数の求め方(例)
(5)10=(0101)2の2の補数(4ビットの場合)
1. 元の数値の各桁を1から引く
1111
- 0101
1010
2. その数値に1を加える
1010
+ 0001
1011
各桁の0と1を反転させるだけ
2の補数を使った減算1
コンピュータの内部では減算は2の補数の加算
として計算される
例:(94)10-(19)10
(94)10=(01011110)2,(19)10=(00010011)2
(19)10の2の補数は, (11101101)2
(01011110)2+(11101101)2= (101001011)2
(01001011)2
64+8+2+1=(75)10
2の補数を使った減算2
例:(19)10-(94)10
(19)10=(00010011)2, (94)10=(01011110)2
(94)10の2の補数は,(10100010)2
(00010011)2+(10100010)2= (10110101)2
(10110101)2の2の補数は,(01001011)2
64+8+2+1=(75)10
補足説明
2の補数表現を使うとなぜ減算が加算と同じに
扱えるか?
a – b (a , b > 0)
bを2の補数表現で表すと・・・
8
a + (2 – b)
a と bの2の補数を加算する
8
a >= bの時: a + (2 – b) = a – b + 2
28 – b
8
・・・9桁目の1を削除
a < b の時: a + (28 – b) = 2 8– (b – a) ・・・|a – b|の2の補数
a – b の絶対値=b – a
演習問題
① (‐120)10と(‐55)10を,2の補数表現で表せ
② 2の補数を用いて次の計算をし,その解が
正しいかどうか10進数に直して確かめよ
① (102)10-(95)10
② (95)10-(102)10
※ 8ビットで
演習問題・解答①
① (‐120)10と(‐55)10を,2の補数表現で表せ
(120)10=(01111000)2
(-120)10=(10000111)2+(00000001)2=(10001000)2
(55)10=(00110111)2
(-55)10=(11001000)2+(00000001)2=(11001001)2
演習問題・解答②
② 2の補数を用いて次の計算をし,その解が
正しいかどうか10進数に直して確かめよ
① (102)10-(95)10
(102)10=(01100110)2, (95)10=(01011111)2
(-95)10=(10100001)2
(102)10-(95)10=(01100110)2+(10100001)2
=(100000111)2
(00000111)2=(7)10
演習問題・解答③
② 2の補数を用いて次の計算をし,その解が
正しいかどうか10進数に直して確かめよ
② (95)10-(102)10
(102)10=(01100110)2, (95)10=(01011111)2
(-102)10=(10011010)2
(95)10-(102)10=(01011111)2+(10011010)2
=(11111001)2
(11111001)2=-(00000111)2=(-7)10
文字の表現
• コンピュータ内部では文字や記号も2進数
で表す.
• ある情報をどんな2進数のビット列で表す
かの取り決めをコードという.
• 世界:ASCIIコード(1バイト)
• 日本:JIS,シフトJIS,EUC(2バイト)
文字コードの扱い
コンピュータ内部
(41)16
ディスプレイ
解釈
文字
A
データ型
65
整数
利用例:大文字と小文字の変換
+32
大文字
T (84)10
‘a’ - ‘A’
小文字
t (116)10