授業展開#4 - 埼玉大学工学部 応用化学科

授業展開#4
2進数世界の数値と文字
表現のレベル
論理表現:0か1
 実装表現:スイッチのオン・オフ
 リレー、真空管、トランジスタ

自然数の表現
 自然数:ここでは0以上の整数。
 自然数を0と1で表すために2進記法の表現
を使う
たとえば、8ビット固定長で整数を表すとする。

10進 59 = 32+16+8+2+1 = 2進 00111011
2進 10111010 = 1×27+0×26+1×25+1×24+
1×23+0×22+1×21+0×20=128+32+16+8+2
=10進 186

最大値
2進 11111111=128+64+32+16+8+4
+2+1=10進 255(28-1)
2進数の桁の扱い
MSB(Most Significant Bit)2進表現のとき最上位の桁
LSB(Least Significant Bit)2進表現のとき最下位の桁
MSB
Bit番号 7 6
8bit列 x7
x6
5
x5
4
x4
3
x3
2
x2
LSB
1
0
x1 x0
xi=0,1
自然数の加算

1桁めの2つの数x1、y1の和を求め、下からの繰り上がりci
を考慮して、i桁めの数xi、yiの和を求める。
x
y
s
c
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
x
y
ci
si
ci+1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
上記関数表を真理値表ともいう
整数の表現と計算
正負の符号+と-を、0と1に対応させる必要
 最も左端のビット(MSB)で正負の符号を表す。
MSB が0 のとき+、1のとき-とする
→ -127~ +127の範囲の数字が表せる。

計算が複雑
 加える2つの数が同符号→絶対値の和にその符号を
つける
 加える2つの数が異符号→絶対値の差に絶対値の大
きいほうの符号をつける
バイアス表現
バイアス表現:数値の並ぶ順序と大きさの順序を一
致させる。x+127をxとする表現。
 -127~ +128の範囲の数字が表せる。
 加法では、バイアス分を減じる必要。

10進
さっきの表現
x+127
バイアス表現
-127
11111111
0
00000000
-2
10000010
125
01111101
-1
10000001
126
01111110
0
00000000 or 10000000
127
01111111
1
00000001
128
10000000
2
00000011
129
10000001
127
01111111
254
11111110
128
-
255
11111111
補数表現
1の補数表現:正の数と0は通常の2進数表現、負
の数は、その絶対値の同じ正の数の0と1を書き換
えたもの。
10進 56 = 2進 00111000
10進 -56 = 2進 11000111
正の領域、負の領域で数の順序は保存
加算も桁あふれを考慮すると簡単
 2の補数表現:負の数を表す1の補数表現に1を加
えたもの。
-128~ +127の範囲の数字が表せる。
加算も簡単

整数の表現(3ビット)
2進
000
001
010
011
100
101
110
111
自然数 最初の表現 バイアス表現 1の補数表現 2の補数表現
0
1
2
3
4
5
6
7
0
1
2
3
-0
-1
-2
-3
-3
-2
-1
0
1
2
3
4
0
1
2
3
-3
-2
-1
-0
0
1
2
3
-4
-3
-2
-1
情報の表現とデータ型
実数表現:数字で表したとき小数点を含むような
数値を実数という。
10進7.375 = 2進111.011
2進101.1101
=1×22+0×21+1×20+1×2-1+1×2-2
+0×2-3+1×2-4
=4+1+0.5+0.25+0.0625
=10進5.8125
情報の表現とデータ型
必ずしも完全対応ではなく、近似値にしかならないこと
もある。
10進6.6=2進110.100100100・・・・
10進15.333・・・=3進120.1
固定小数点表現:5.025
浮動小数点表現:1.025×10-5
ここで「1.025」:仮数、「10」:基数、
「-5」:指数
コード(符号)
 あるデータ、あるいは情報を基準となる記号
の列、記号列で表したものを、そのデータの
符号またはコードといい、符号に変換すること
を符号化、エンコード(encode)という。逆に、
符号を元の記号に戻すことを復号(化)また
はデコード(decode)という。
 コンピュータ:すべての情報を0、1のビット列
からなる符号で表す。
文字コード
文字コード:文字列を符号化したもの。




英字のコード:アスキーと呼ばれる8ビット=1バイトコード。
日本語文字は1バイトでは256字種しか使用できないので、
JIS(Japanese Industrial Standard、日本工業規格)で
は、1バイトコードとしては、カタカナ、数字と英字の大文字を
割り当てている。
通常の日本語文字としては、かな文字や漢字も使えるように
するため、JISでは2バイト=16ビットコードを設定して定義
している。
1バイトコードと2バイトコードの混在の問題や、日本語コード
の規格の乱立などいろいろと問題がある。(旧JIS、新JIS、
EUC、DEC)
JISコード表現
上位ビット
下
位
ビ
ッ
ト
0
1
2
3
4
5
6
7
0
NUL
DLE
(SP)
0
@
P
`
p
1
SOH
DC1
!
1
A
Q
a
q
2
STX
DC2
”
2
B
R
b
3
ETX
DC3
#
3
C
S
4
EOT
DC4
$
4
D
5
ENQ
NAK
%
5
6
ACK
SYN
&
7
BEL
ETB
8
BS
9
8
9
A
B
C
D
ー
タ
ミ
。
ア
チ
ム
r
「
イ
ツ
メ
c
s
」
ウ
テ
モ
T
s
t
エ
ト
ヤ
E
U
e
u
・
オ
ナ
ユ
6
F
V
f
v
ヲ
カ
ニ
ヨ
’
7
G
W
g
w
ァ
キ
ヌ
ラ
CAN
(
8
H
X
h
x
ィ
ク
ネ
リ
HT
EM
)
9
I
Y
i
y
ゥ
ケ
ノ
ル
A
LF
SUB
*
:
J
Z
j
z
ェ
コ
ハ
レ
B
VT
ESC
+
;
K
[
k
{
ォ
サ
ヒ
ロ
C
FF
FS
,
<
L
¥
l
|
ャ
シ
フ
ワ
D
CR
GS
-
=
M
]
m
}
ュ
ス
ヘ
ン
E
SO
RS
.
>
N
^
n
 ̄
ョ
セ
ホ
゛
F
SI
US
/
?
O
_
o
DEL
ッ
ソ
マ
゜
数字「5」=上位3+下位5→0011+0101→00110101
文字「ア」=上位B+下位1→1011+0001→10110001
E
F
16進数表現
 0~9まで進んだ後、A,B,C,D,E,Fとして
繰り上がる記数法。
 16進数表現1つで2進数4ビットと対応できる。
 (1)10=(0001)2=(1)16
 (15)10=(1111)2=(F)16
JIS漢字コード表
第2バイト
21 22 23 24 25 26 27 28 29 2A 2B 2C 2D
第
1
バ
イ
ト
21
、 。
22 ◆ □ ■
23
24 ぁ あ ぃ
25 ァ ア ィ
, . ・ : ; ? ! ゛ ゜ ´
△ ▲ ▽ ▼ ※ 〒 → ← ↑ ↓
い ぅ う ぇ え ぉ お か が き
イ ゥ ウ ェ エ ォ オ カ ガ キ
30 亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪
31 院 陰 隠 韻 吋 右 宇 烏 羽 迂 雨 卯 鵜
32 押 旺 横 欧 殴 王 翁 襖 鴬 鴎 黄 岡 沖
0と1の世界の構成
 電気での表現
 0:オフ、1:オン
(正理論の対応、逆は負理論の対応)
 基本
•
•
•
OR(論理和、選言)
AND(論理積、連言)
NOT(補、否定)
OR,AND、NOTの真理値表
x
0
0
1
1
y
0
1
0
1
x OR y x AND y
0
1
1
1
0
0
0
1
x
NOT x
0
1
1
0
ブール代数:0、1からなる世界で論理演算を対象に系統的に数学的に組み上げた体系
論理演算回路
基本論理演算回路
0
X
1
0
X
Y
1
0
Y
0
0
X
1
1
1
OR
AND
NOT
MIL(Military Standard)記号表現
X
Y
X
Y
OR
X
AND
NOT
回路の合成
x y z
((x AND y) OR (NOT z))
AND
x
y
z
OR
NOT
((x AND y) OR (NOT z))
0 0 0
1
0 0 1
0
0 1 0
0 1 1
1
0
1 0 0
1
1 0 1
1 1 0
0
1
1 1 1
1
演習
① 以下の2進数を10進数に、10進数を2進数
に変換せよ。
(1010101)2=
(100)10=
② 次の真理値表を完成せよ。
x
y
z
0
0
1
1
0
1
0
1
1
1
0
0
x and (y or z)
x or (not y)
真理値表1
x
y
z
0
0
1
1
0
1
0
1
1
1
0
0
y or z x and (y or z)
1
1
0
1
0
0
0
1
真理値表2
x
y
not y
x or (not y)
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
PC演習
BASICのインストールと動作確認
Macで動くBasic
Chipmunk Basic
http://www.nicholson.com/rhn/basic/
次週(10/30)小テスト
電卓、筆記用具、直筆ノート
Basic演習
1.テキストエディターで新規ファイルを作成
2.1行目に INPUT A,B
2行目に C=A*B
3行目に PRINT C
4行目に END
を入力
3.ファイルをinput.txtのファイル名で保存
4.Chipmunk Basic を起動
5.File Open でinput.txtを読み込む。
6.Control run でソフトを走らせる。
7.?に好きな数字2つを入力すると、積が出力される。