/
C 言語入門 第 2 週 C 言語入門 第 2 週

C 言語入門 第 2 週 - PowerPoint Presentation

shoulderheinz
shoulderheinz . @shoulderheinz
Follow
344 views
Uploaded On 2020-08-29

C 言語入門 第 2 週 - PPT Presentation

プログラミング言語 Ⅰ 実習を含む 計算機言語 Ⅰ 計算機言語演習 Ⅰ 情報処理言語 Ⅰ 実習を含む 1 先週の復習 1 explorer の使い方 ID: 810614

int 0x00 users kou 0x00 int kou users desktop explorer exe unsigned long double 1024 1000 week1 char main

Share:

Link:

Embed:

Download Presentation from below link

Download The PPT/PDF document "C 言語入門 第 2 週" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

C言語入門第2週

プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)

1

Slide2

先週の復習1explorer の使い方

2

Slide3

explorer.exe

ファイルの操作を行うソフトデスクトップもエクスプローラーの一部

ここ

に「

explorer

」と入力し

ENTER

キーを叩いても

explorer

が表示できます

これが「

explorer

デスクトップ

explorer

コントロールパネルも

explorer

3

Slide4

ポップアップ(popup)メニューの表示

表示させたい場所でマウス右クリック例えばデスクトップの何もない場所でメニューの右にある三角印サブメニューが出る

ポップアップメニュー

サブメニュー

4

Slide5

ファイルの作成とオープン

explorer の作成したい場所でマウス右クリックポップアップメニュー出る新規作成→テキストドキュメント

出来たファイルは

適当に名前を付けても良い

マウス左ダブルクリック

メモ帳で開かれる

5

Slide6

フォルダの作成作成したい所で右クリックポップアップメニューで

→新規作成→フォルダ「新しいフォルダ」ができた

6

Slide7

フォルダを開く

フォルダアイコンの上で左ダブルクリックexplorer が開く

開いているフォルダ名

7

Slide8

ファイルの移動

「テキストドキュメント」を「新しいフォルダ」の中に移動「ドラッグ&ドロップ」すれば良い

ドラッグ&ドロップ

移動しました

8

Slide9

ファイルのコピー

Ctrl を押したまま 「ドラッグ&ドロップ」

コピーができました

9

Slide10

ファイルの選択

ファイルを単純にクリックファイル左側のチェックボックスをクリックファイルを囲むようにドラッグ(複数選択)

選択された

10

Slide11

ファイルの削除

選択したファイル上で右クリック→削除ファイルを選択して「Delete」キーでも良い

ファイルが消えた

11

Slide12

CUI作業環境 (terminal)フォルダをSHIFT+右クリック

cmd.exe

m

intty

+ bash

12

Slide13

cmd と bash の主なコマンド

cmdbash

マニュアル

help [

コマンド名

]

man

[

コマンド名

]

ファイル一覧

dir

lsファイルの表示type ファイル名

cat [ファイル名]

ディレクトリ移動

cd ディレクトリ名cd [ディレクトリ名

]ディレクトリ表示

cd

pwdファイルコピーcopy コピー元 コピー先

cp

コピー元 コピー先ファイル移動move コピー元 コピー先

mv

コピー元 コピー先

ファイル削除

del

ファイル名

rm

ファイル名

tab

|

|

ファイル名の補完

コマンド履歴の再利用

13

Slide14

ファイルの場所の記述方法(パス)以下の図のフォルダ構成を仮定する

作業フォルダは CLangI2014

教科書

pp.30-31.

14

Slide15

作業フォルダcurrent directory と言うこともある

ここに

表示

されているの

作業フォルダ

15

Slide16

Windows の絶対パス、相対パスフォルダの階層を \ で区切る

現在の作業フォルダは以下の場所C:\Users\kou\Desktop\CLangI2014絶対パスはルートデバイスを基準にC:\Users\kou\Desktop\CLangI2014\week1\hello.cC:\Users\kou\Desktop\CLangII2014\week1\hellogui.c相対パスは現在の作業フォルダを基準に

week1\

hello.c

..\CLangII2014\week1\

hellogui.c

教科書

pp.30-31.

16

Slide17

Cygwin の絶対パス、相対パスディレクトリの階層を / で区切る

現在の作業ディレクトリは以下の場所/cygdrive/c/Users/kou/Desktop/CLangI2014絶対パスはルートディレクトリ / を基準に/cygdrive

/c/Users/

kou

/Desktop/CLangI2014/week1/

hello.c

/

cygdrive

/c/Users/

kou

/Desktop/CLangII2014/week1/

hellogui.c相対パスは現在の作業ディレクトリを基準にweek1/hello.c../CLangII2014/week1/hellogui.c17

Slide18

特別なフォルダ名「..」1

つ親のディレクトリを意味する「.」現在のディレクトリを意味するUNIX では実行ファイルの検索パスに作業ディレクトリが含まれない作業ディレクトリ

にある実行ファイルを実行する際

./

を実行ファイル名の前に付ける必要がある

18

Slide19

補足フォルダとディレクトリは同じ概念Windows

流ではフォルダと呼ぶUNIX 流ではディレクトリと呼ぶ/cygdrive は cygwin 特有の仮想ディレクトリWindows のドライブが配置されている

通常

UNIX

ではパスに

: (

コロン

)

を使わないため

ネットワークドライブもアクセス出来る

UNC

表記を用いる\\fs.cc.yamaguchi-u.ac.jp\YUアカウント名//fs.cc.yamaguchi-u.ac.jp/YUアカウント名19

Slide20

コマンドの検索パス環境変数 PATH に設定されたパスからコマンドを探して実行する

cmd での確認方法複数のパスは ; (セミコロン)で区切って与える

bash

での

確認方法

複数のパスは

:

(

コロン

)で区切って与える

> echo %PATH%$

echo $PATH

20

Slide21

ファイル拡張子の表示Windows 8 以降explorer.exe

から「表示」→「ファイル名拡張子」→ON

ファイル名末尾に

.

○○○と表示される

教科書

p.27.

21

Slide22

ファイル拡張子の表示Windows 7 以前explorer.exe から

「Alt」→「ツール」→「オプション」→「表示」→「登録されている拡張子は表示しない」→OFF

Alt

叩くとメニュー出る

ファイル名末尾に

.

○○○と出る

教科書

p.27.

22

Slide23

ファイル拡張子とは?ファイルの種類を表しているアプリケーションとの関連付けに用いられる

実行ファイルは .exe や .comテキスト文書は .txtWord2007以降は .docx それより前は .doc

Excel2007

以降は

.

xlsx

それより前は

.

xls

PowerPoint2007

以降は .pptx それより前は .ppt圧縮ファイルは .zip .lzh .tgz .cab 等々

等々変更すると開けなくなる普通は変更する必要はない

メール等で添付されて来たファイルには注意文書ファイルに見えて実行ファイル(実はウィルス)ということも23

Slide24

C コンパイラによるコンパイルcmd.exe から bcc32 で行った例

C:\Users\kou\Desktop\CLangI2014>dir /Bhello.c

C:\Users\kou\Desktop\CLangI2014>bcc32

hello.c

Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

hello.c

:

警告

W8070

hello.c

6:

関数は値を返すべき

(

関数 main )Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 BorlandC:\Users\kou\Desktop\CLangI2014>dir /Bhello.c

hello.exe

hello.objhello.tds

C:\Users\kou\Desktop\CLangI2014>hellohello, world

ファイル一覧の表示

コンパイル

ファイル一覧の表示

作成した実行ファイルを実行

教科書

pp.36-42.

24

Slide25

C コンパイラは何をしているのか?デバッグ情報付きコンパイルし逆アセンブル.rdata

セクション部分$ gcc -g

hello.c

$

objdump

-d -S -s

a.exe

a.exe:

ファイル形式

pei-x86-64

...

セクション

.

rdata の内容: 100403000 63796767 636a2d31 342e646c 6c005f4a cyggcj-14.dll._J

100403010 765f5265 67697374 6572436c 61737365 v_RegisterClasse

100403020 73000000 00000000 00000000 00000000 s...............

100403030 68656c6c 6f2c2077 6f726c64 00000000 hello, world.... 100403040 4743433a 2028474e 55292034 2e382e31 GCC: (GNU) 4.8.1...

セクション .text

の逆アセンブル:

...00000001004010d0 <main>:#include <stdio.h>

main()

{

埋め込まれた文字データ

文字データの配置アドレス

文字データの

16

進表現

教科書

p.17.

25

Slide26

C コンパイラは何をしているのか?.text セクション部分

セクション .text の逆アセンブル

:

...

00000001004010d0 <main>:

#include <

stdio.h

>

main()

{

1004010d0: 55 push %

rbp

1004010d1: 48 89 e5

mov %rsp,%rbp

1004010d4: 48 83

ec 20 sub $0x20,%rsp

1004010d8: e8 73 00 00 00 callq 100401150 <__main> printf

("hello, world\n"); 1004010dd: 48 8d 0d 4c 1f 00 00 lea 0x1f4c(%rip),%

rcx #

100403030 <.rdata> 1004010e4: e8 77 00 00 00

callq 100401160 <puts>

} 1004010e9: 48 83 c4 20 add $0x20,%rsp 1004010ed: 5d pop %rbp 1004010ee: c3

retq

1004010ef: 90

nop

...

アセンブラコードを

アセンブルして得られた

マシン語

のバイトコード

C

言語を

コンパイルして得られた

アセンブラコード

配置アドレス

26

Slide27

C言語入門(変数と定数)27

Slide28

基礎知識28

Slide29

テキスト編集系ソフトの種類テキストエディタ (メモ帳,

秀丸, etc,,,)基本的にプレーンな文字情報のみ、装飾なしリッチテキストエディタ (ワードパッド, etc,,,)字体、色、サイズ等の装飾が可能にワードプロセッサ (Word, 一太郎

,

etc

,,,)

更に高度な、文書作成支援機能

DTP

ツール

(InDesign, Publisher,

etc

,,,)印刷用の版下作成、特に割付へ特化

29

Slide30

プログラミング向けテキストエディタの機能構文解析機能

シンタックスハイライト機能行番号表示機能入力補完機能マクロ機能正規表現対応の検索機能タグジャンプ機能等々

30

Slide31

テキストエディタ窓の杜オフィス / 文書

作成 / テキストエディターhttp://www.forest.impress.co.jp/library/nav/genre/offc/document_txteditor.html学習・プログラミング / プログラミング / プログラム向けエディター http://

www.forest.impress.co.jp/library/nav/genre/stdy/program_progeditor.html

Vector

Windows

/

文書作成

/

テキストエディタ

http://www.vector.co.jp/vpack/filearea/win/writing/edit

/31

Slide32

テキストエディタサクラエディタhttp://sakura-editor.sourceforge.net/

xyzzyhttp://xyzzy-022.github.io/32

Slide33

統合開発環境Microsoft Visual Studiohttp://www.visualstudio.com/ja-jp/

EclipsePleiades - Eclipse プラグイン日本語化プラグインhttp://mergedoc.sourceforge.jp/NetBeanshttps://ja.netbeans.org/

33

Slide34

コメントプログラムとしては解釈されない後で読む人用に注釈をしておく機能/* ~ */

の間がコメント// から行末までがコメント教科書 p.46.

#include <

stdio.h

>

main()

{

/*

ここがコメント

*/

printf

("hello, world\n");

//

ここもコメント

}

緑の部分がコメントとして

扱われている34

Slide35

SI接頭辞

名前

記号

乗数

キロ

(kilo)

K

1000

1

=10

3

メガ

(mega)

M

1000

2

=10

6

ギガ

(giga)

G

1000

3

=10

9

テラ

(tera)

T

1000

4

=10

12

ペタ

(peta)

P

1000

5

=10

15

エクサ

(exa)

E

1000

6

=10

18

ゼタ

(zetta)

Z

1000

7

=10

21

ヨタ

(yotta)

Y

1000

8

=10

24

35

Slide36

2進接頭辞(IEC/IEEE)

名前

記号

乗数

キビ

(kibi)

Ki

1024

1

=2

10

メビ

(mebi)

Mi

1024

2

=2

20

ギビ

(gibi)

Gi

1024

3

=2

30

テビ

(tebi)

Ti

1024

4

=2

40

ペビ

(pebi)

Pi

1024

5

=2

50

エクスビ

(exbi)

Ei

1024

6

=2

60

ゼビ

(zebi)

Zi

1024

7

=2

70

ヨビ

(yobi)

Yi

1024

8

=2

80

36

Slide37

bit と byteb – bit

2進数 1 桁通信速度や IC の容量表記等例:100Mbps (100 Mega bits per seconds)

B – Byte

8bit (

半角英数

1

文字分に相当

)

記憶メディアの容量表記等

:

32GB (32 Giga Bytes)0

1

1bitの記憶素子には2進数

の1桁つまり0 または 1

のみ記憶できる

0

0

0

1

1

0

1

1

1bit

毎では

単位が小さ過ぎて使い辛い

通常

8

桁を

1

まとめにして扱う

1bit

8bit

= 1byte

8bit = 1byte

通り

整数を表現

可能

符号なし

:

符号あり

:

 

教科書

pp.50-55.

37

Slide38

16進数

2進数10進数16進数2

進数

10

進数

16

進数

0b0000

0

0x0

0b1000

8

0x8

0b00011

0x1

0b1001

90x9

0b0010

2

0x20b1010

10

0xa0b00113

0x3

0b1011

11

0xb

0b0100

4

0x4

0b1100

12

0xc

0b0101

5

0x5

0b1101

13

0xd

0b0110

6

0x6

0b1110

14

0xe

0b0111

7

0x7

0b1111

15

0xf

2

進数

4

桁 →

16

進数

1

2

進数

8

桁 →

16

進数

2

2

進数

16

桁 →

16

進数

4

2

進数

32

桁 →

16

進数

8

2

進数

64

桁 →

16

進数

16

2

進数

4

桁 →

16

進数

1

桁 に対応

2

進数から変換するとキリが良い

バイト単位のデータを表す際

読み易い

: 0b0001001000110100

= 4660 = 0x1234

教科書

pp.50-55.

38

Slide39

8 bit 整数の N 進数の表現

2進数符号なし10進数符号あり10進数

16

進数

0b00000000

0

0

0x00

0b00000001

1

1

0x01

0b00000010

2

2

0x02

0b000000113

3

0x03

:::

:

0b01111111127127

0x7f

0b10000000

128

-128

0x80

:

:

:

:

0b11111100

252

-4

0xfc

0b11111101

253

-3

0xfd

0b11111110

254

-2

0xfe

0b11111111

255

-1

0xff

符号あり整数の場合は最上位ビットを符号ビットとして扱う

(2

の補数表現

)

教科書

pp.50-55.

符号ありは

ここ

正負が

入れ替わる

39

Slide40

16 bit 整数の N 進数の表現

2進数符号なし10進数符号あり10進数

16

進数

0b0000000000000000

0

0

0x0000

0b0000000000000001

1

1

0x0001

0b0000000000000010

2

2

0x0002

0b00000000000000113

3

0x0003

:::

:

0b01111111111111113276732767

0x7fff

0b1000000000000000

32768

-32768

0x8000

:

:

:

:

0b1111111111111100

65532

-4

0xfffc

0b1111111111111101

65533

-3

0xfffd

0b1111111111111110

65534

-2

0xfffe

0b1111111111111111

65535

-1

0xffff

符号あり整数の場合は最上位ビットを符号ビットとして扱う

(2

の補数表現

)

符号ありは

ここ

正負が

入れ替わる

教科書

pp.50-55.

40

Slide41

N bit 整数の最大値・最小値

Bit数符号あり

10

進数

最小値

符号あり

10

進数

最大値

符号なし

10

進数最大値8-128

127

25516-327683276765535

32-2147483648

2147483647

429496729564-

92233720368547758089223372036854775807

18446744073709551615

Bit

符号あり

10

進数

最小値

符号あり

10

進数

最大値

符号なし

10

進数最大値

8

-128

127

255

16

-32768

32767

65535

32

-2147483648

2147483647

4294967295

64

-

9223372036854775808

9223372036854775807

18446744073709551615

41

Slide42

符号なし8bit整数の演算整数

オーバーフロー 11111111

= 255

+)00000001

= 1

1

00000000 =

0

整数

アンダーフロー

100000000 = 0-)00000001 = 1 11111111 = 255

有効桁の外に

1

が溢れた

有効桁外の外から

1が溢れた

42

Slide43

符号あり8bit整数の演算整数

オーバーフロー 01111111

= 127

+)00000001

= 1

10000000 = -128

整数

アンダーフロー

10000000

= -128-)00000001 = 1 01111111 = 1272の補数表現

100000000

= 0

-)00000001 = 1 11111111 = -1

11111111

= -1+)00000001

= 1 100000000 = 0

有効

桁の外から1を借りてくる

有効

桁の外に

1

を捨てる

符号ビットに

1

が溢れた

符号ビットから

1

が溢れた

43

Slide44

RAM (Random Access Memory)コンピュータのメインメモリで利用されている

44

Slide45

メモリの構成1byte単位でアドレスが振られているつまり各アドレスには

1byteの値を格納出来る

0x00

0x00000000

0x00

0x00000001

0x00

0x00000002

0x00

0x00000003

0x00

0xffffffff

:

:

:

:

0x00

0x0000000000000000

0x00

0x0000000000000001

0x00

0x0000000000000002

0x00

0x0000000000000003

0x00

0xffffffffffffffff

:

:

:

:

32bit

OS

32bit

のアドレス空間

最大

Bytes=4GiB

 

64bit

OS

64

bit

のアドレス空間

最大

Bytes=16EiB

 

アドレス

格納値

アドレス

格納値

教科書

pp.52-56.

45

Slide46

大きい値の扱い方複数のアドレスをまとめて変数に割り当てる

0x00

0x

00

0x00

0x

01

0x00

0x

02

0x00

0x

03

:

:

:

:

0x00

0x

04

0x00

0x

05

0x00

0x

06

:

:

:

:

0x00

0x

07

0x00

0x

08

8bit

0x00

0x

00

0x00

0x

01

0x00

0x

02

0x00

0x

03

:

:

:

:

0x00

0x

04

0x00

0x

05

0x00

0x

06

:

:

:

:

0x00

0x

07

0x00

0x

08

16bit

46

Slide47

大きい値の扱い方複数のアドレスをまとめて変数に割り当てる

0x00

0x

00

0x00

0x

01

0x00

0x

02

0x00

0x

03

:

:

:

:

0x00

0x

04

0x00

0x

05

0x00

0x

06

:

:

:

:

0x00

0x

07

0x00

0x

08

32bit

0x00

0x

00

0x00

0x

01

0x00

0x

02

0x00

0x

03

:

:

:

:

0x00

0x

04

0x00

0x

05

0x00

0x

06

:

:

:

:

0x00

0x

07

0x00

0x

08

64bit

47

Slide48

変数の宣言、値の代入値を格納する箱のようなもの

int a; // (1) 変数の宣言

a = 10; // (2)

値の代入

// (3)

教科書

pp.59-61.

10

a

10

(1)

(2)

a

?

a

?

(3)

int

型の変数を作り

a

という名前を付ける

中身は未定

変数

a

10

を代入する

変数

a

10

代入

された状態に

なっている

48

Slide49

変数の宣言と初期化宣言

a

10

int

a = 10; // (1)

変数

の宣言と初期化

(1)

int

型の変数を作り

a

という名前を付け10 を代入する教科書 pp.59-61.49

Slide50

変数文法

データ型 変数名; // 変数の宣言

データ型 変数名

=

初期代入値

;//

変数の宣言と初期化

データ型 変

数名

1,

変数名

2; //

複数の変数の

宣言データ型 変数名1=初期代入値1, 変数名2=

初期代入値2;

// 複数の変数

の宣言と初期化変数名 = 値

; // 値の代入

教科書 pp.59-61.

50

Slide51

リテラルソースコードに直接記述された値数値、文字列等

//...int

main(

int

argc

, char *

argv

[])

{

if (

argc

<

4) { printf(

"Usage: %s output_file

micro_sec

MIDI_note_No\n\n"

, argv

[0

]); return EXIT_FAILURE; } FILE *

fp;

if (fp = fopen(

argv

[

1

],

"

wb

"

)) {

fwrite_wav

(

44100

,

atoi

(

argv

[

2

]),

atoi

(

argv

[

3

]),

fp

);

fclose

(

fp

);

}

return EXIT_SUCCESS;

}

wavtest.c

赤字

で示したような部分が

リテラルに当たる

教科書

p.54.

51

Slide52

整数のデータ型char, unsigned char1

バイト、局所的な文字セット内に1文字を保持し得るshort, unsigned short少なくとも16ビットint, unsigned int少なくとも16ビット

通常ホスト計算機の自然な整数サイズ

現在は

32 or 64

ビットであることが多い

long, unsigned

long

少なくとも

32

ビット

明確にビット数は定められていない割り当てビット数の大小関係は short <= int <=long型の前に unsigned を付けると整数型になる教科書

pp.53-55.

コンパイルする環境により使える値の最大値・最小値が異なる!

52

Slide53

整定数のリテラル何も指定しないと int 型

末尾に接尾子(U, L)を付けると型指定されるint

i

=

1234

; //

int

long l =

1234L

; // long

unsigned

int ui = 1234U; // unsigned int 型

unsigned long

ul = 1234UL

; // unsigned long 型53

Slide54

C言語のN進数リテラル0b

~ 2進数リテラル(C++14の仕様*1

)

0

8

進数リテラル

0x

16

進数

リテラル*1: 少なくとも

gcc4.3, Clang3.2 では実装済み古いコンパイラでは2進数リテラルは使えないint

dec =

100; // 10進数の

100int bin = 0b100; // 2

進数の100=10進数の

4int

oct = 0100; // 8進数の100=10

進数の 64

int hex = 0x100; // 16進数の100=10

進数の

256

教科書

p.54.

54

Slide55

浮動小数点数のデータ型float 単精度浮動小数点数double

倍精度浮動小数点数long double 拡張精度の浮動小数点数教科書 pp.55-56.55

Slide56

浮動小数点数とはIEEE754

http://ja.wikipedia.org/wiki/IEEE_754以下のようなに表現する方法

 

ビット数

符号

指数部

仮数部

単精度

32bit

1bit

8bit

23bit

倍精度

64bit1bit11bit53bit四倍精度128bit

1bit15bit112bit

指数部の値で

小数点の位置が移動するので

浮動

数点と呼ばれる

教科書

pp.55-56.

56

Slide57

浮動小数点数定数のリテラル何も指定しないと

double 型末尾に接尾子(F, L)を付けると型指定される1.234E5 のような書き方も出来る

(

指数表現

)

これは

を意味する

 

float f =

1234F

; // float

double d =

1234; // double 型long double ld =

1234L; // long double

double e = 1.234E5; // double 型の 123400

57

Slide58

ASCII文字コード表

 

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

NUL

SOH

STX

ETX

EOT

ENQ

ACK

BEL

BS

HT

LF

VT

FF

CR

SO

SI

1

DLE

DC1

DC2

DC3

DC4

NAK

SYN

ETB

CAN

EM

SUB

ESC

2

SP

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

3

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

4

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

5

P

Q

R

S

T

U

V

W

X

Y

Z

[

\

]

^

_

6

`

a

b

c

d

e

f

g

h

i

j

k

l

m

n

o

7

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

DEL

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上位

4

ビット

下位

4

ビット

赤字は制御コード

教科書

p.51.

http://

ja.wikipedia.org/wiki/ASCII

58

Slide59

制御コード

HEXAbbrctrleseqName

Hex

Abbr

ctrl

eseq

Name

0x00

NUL

^@

\0

Null

0x10

DLE^P

Data Link Escape0x01

SOH

^AStart of Heading0x11

DC1

^Q

Device Control 10x02STX

^B

Start of Text0x12DC2

^R

Device Control 2

0x03

ETX

^C

End of Text

0x13

DC3

^S

Device Control 3

0x04

EOT

^D

End of Transmission

0x14

DC4

^T

Device Control 4

0x05

ENQ

^E

Enquiry

0x15

NAK

^U

Negative

Acknowledgement

0x06

ACK

^F

Acknowledgement

0x16

SYN

^V

Synchronous idle

0x07

BEL

^G

\a

Bell

0x17

ETB

^W

End of Transmission Block

0x08

BS

^H

\b

Back Space

0x18

CAN

^X

Cancel

0x09

HT

^I

\t

Horizontal Tab

0x19

EM

^Y

End of Medium

0x0a

LF

^J

\n

Line Feed

0x1a

SUB

^Z

Substitute

0x0b

VT

^K

\v

Vertical Tab

0x1b

ESC

^[

\e

Escape

0x0c

FF

^L

\f

Form Feed

0x1c

FS

^\

File Separator

0x0d

CR

^M

\r

Carriage Return

0x1d

GS

^]

Group Separator

0x0e

SO

^N

Shift Out

0x1e

RS

^^

Record Separator

0x0f

SI

^O

Shift In

0x1f

US

^_

Unit Separator

0x20

SP

Space

0x7f

DEL

^?

Delete

教科書

p.51.

59

Slide60

文字定数のリテラル1文字を単一の引用符('

)で囲むchar型の値になる

単一

引用

(

'

)

Shift

'

7

+

char a =

'a

'

;

//

「a」の文字コード

0x61char lf = '\012';

//

改行

の文字

コード

0x0a

8

進数で

char

vt

=

'\x0b'

;

//

垂直

タブの文字

コード

0x0b

16

進数で

char

cr

=

'

\r

'

;

//

復帰の

文字コード

0x0d

//

エスケープシーケ

1

ンスで

教科書

p.56.

60

Slide61

エスケープシーケンス\a

警告(ベル)文字

\b

バックスペース

\f

改頁

(

フォームフィード

)

\n

改行

\r

復帰

\t 水平タブ\v 垂直タブ

\\ バックスラッシュ

\? 疑問符

\' 単一引用符\"

二重引用符

\o

oo 8進数 ooo (*1)\

xhh 16進数

hh (*2)教科書 p.56.

(*1)

ooo

1

桁ないし

3

桁の

8

進数を取る

(*2)

hh

1

桁あるいは

2

桁の

16

進数を取る

これらの表記は、

1

文字

(=1

バイト

)

の値を表す。

61

Slide62

幅広文字定数のリテラルchar型では表せない拡張文字セット用文字定数の前に L

を付けるwchar_t型の値になる

wchar_t

hira_a

=

L

'

'

; //

「あ」の文字コード

U+3043?

備考Wikipedia / JIS_X_0213非漢字一覧#1

面4

区http

://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧#1.E9.9D.A24.E5.8C.BA

62

Slide63

文字列定数のリテラル0個以上の文字を二重引用符(

")で囲むchar型の配列になる(後述

)

二重引用

(

"

)

Shift

"

2

+

char

emp

[]

=

"";

//

空の文字列char str[] = "

I am a string

"

;

//

文字列

char cat[] = "hello, " "world";

// "hello, world"

と同じ

//

連続した文字定数リテラルはコンパイル時に連結される

教科書

pp.44, 96-99.

63

Related Contents


Next Show more