• 1Bは8bitなので,原則,0/1の 列を8個かかないといけない.
• これはかなり面倒かつ読みに くいので,1Bは通常,16進法 の2桁で表現する.
• 対応表は左記の通り.
• 例えば,文字の M は,
0100 1101 なので,
4D と表現できる.
40
二進法 十六進法
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
対応表 (ASCII code)
41 例えば,
文字 D は 0100 0100 文字 3 は
0011 0011
とコンピュータ内部では 表現されるのが普通.
¥ はホントは 〵だけど,
¥ と表示されてしまう.
復習
参考 箱の大きさ
• 型によって一個の変数の大きさは異なる.
• char を 1 箱 (1B) とすると,
• int 4B 分
• 実はintは真に整数では無い
• 値に上限と下限がある.(±21億が多い)
• float 4B 分
• double 8B 分
が一般的.
• しかし,C言語にはこの辺の明確な規定が無い.
42
‘x’ 15
文字 整数
復習 ++
日本語等の文字コード
• 文字をコンピュータ内で,どのようなデータで表現 するかの取り決めを文字コードと言う.
• 日本語等,英数字以外の文字コードは多数,異な る流儀が存在する.
• 英数字もASCII以外の流儀がある (あった)
• アプリ側で文字コードを正しく認識する機能,もしく は扱う機能が無いと文字化けする.
43
日本語等のための文字コード
• ASCIIによる英数字との互換性が重要.
• 以下は互換性がある.
• Shift-JIS (SJIS)
• 概ねWindowsで広く用いられている.
• 正確にはコレが拡張されたWindows31JがWindowsで 広く使われている.
• UTF-8
• 現在,広く用いられているコード.
• コレの親戚にあたるUTF-16はASCIIと互換性が無い.
• JIS, EUC等も互換性があるが,今は使われなく
なった.
44
ASCII の範囲の文字なら,
SJIS でも UTF-8 でも同じ
英語で済ませば
面倒に巻き込まれない.
45
前回演習の解答例
dotcampus 参照
46
来週の伏線
Java, Eclipse ダウンロード
演習説明とともに簡単に解説 演習 1,2,3 の問題は dotcampus に
47
演習 4 ( これは金曜まで )
• 以下の仕様に基づくプログラムを作成せよ.
• dotcampusに提出
• プロジェクト名 odawara
• プログラム名 main1.c main2.c main3.c ....
• 前回と同様,問題の区切りをプログラム冒頭にコメントとして記述せよ.
• 前回と同様,段階をおって複数のバージョンを作ってみよ.
• 例えば,v1では在来線限定にして,v2では新幹線を考慮する等.
48
利用者は東京から小田原まで在来線でいくか,新幹線でいくかを指定する.
在来線の場合,0 を入力し,新幹線の場合,1を入力する.
新幹線の場合のみ,利用者は自由席か指定席かを指定する.
自由席の場合,0 を入力し,指定席の場合,1を入力する.
システムは料金を表示する.
尚,東京から小田原までの乗車券は1500円,新幹線自由席特急券は1700円,
新幹線指定席特急券は2000円とする.
新幹線の場合,乗車券と特急券の両方が必要である.