技術共有

C言語プログラミングの核心を詳しく解説 第1章 記数体系と変換とASCIIコード

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

最初に書きます

このコラムは、C言語プログラミングの基礎から応用までを学ぶためのコラムであり、C言語の自主試験や大学院入試の問題を解決し、データ構造やアルゴリズム設計を学ぶためのC言語の基礎を固めます。
もちろん、このコラムは段階的に紹介するほど詳しくはありません。しかし、私たちは重要な点と難しい点をすべてカバーするよう努めています。

1. 番号体系と変換

1.1 4 つの数体系の定義

2進数、10進数、8進数、10進数
まず、生活の中で最もよく使われる基数系である 10 進法について話しましょう。 10ごとに1を入力してください。

なぜバイナリを学ぶのですか?

コンピュータの最下層はバイナリであり、バイナリはコンピュータにとって最も理解しやすい言語です。

バイナリ定義: 0 1 2 つのエンコード記号
2つごとに1つが入ります
例: 10001 1001111 1000201 (不正な定義) 11111117 (不正な定義)

なぜ 8 進数が導入されたのでしょうか?

2進数では長すぎるし、10進数の圧縮は面倒だ。

8進数の定義: 0 1…7 8 つのエンコード シンボルが 8 つごとに 1 つずつ進みます
例: 123451 10678 20740 09341 (不正な定義)

なぜ 16 進数が導入されたのでしょうか?

オクタルシステムのアップグレードバージョン

16 進数の定義:0 1…9 ABCDEF 16 分の 16 種類の記号
例: 1abc1 0945dej5

思考: 10 進数、8 進数、16 進数を区別することが実際には不可能な場合があります。どうやって区別するのですか?

10進数: 123
8 進数の前に 0 を追加します: 0123
16 進数の前に 0x を追加します: 0x123

1.2 4 つの数体系の変換

まず、数値体系変換のブリッジが 2 進数であることは明らかです。他の基数を他の基数に変換する場合は、最初に 2 進数に変換してから他の基数に変換することで、基数の変換を完了できます。

1. 10 進数を 2 進数に変換します
10 進数を 2 進数に変換する中心的な公式: 2 で割って余りを逆の順序で求める

2. 2進数から10進数への変換
2進数から10進数への変換、コアメモリ: 重みによる合計、2べき乗、n は 0 から始まります

3. 2進数から8進数への変換
基本的な式: 3 人をグループとして扱い、足りない場合は先頭に 0 を追加します

4. 2進数から16進数へ
中核式:​​4つの数字を1つのグループとして、足りない場合は先頭に0を追加します。

省略された部分: 8 ターンから 2、16 ターンから 2、これは基本的に 3 と 4 の逆のプロセスです。

2. 番号制度の適用

2.1 ASCIIコード

例: A a B b ¥ $ など。これらの記号は、ASCII 値としてコンピュータに保存されます。
つまり、独自のバイナリ エンコーディングが存在します。

ASCIIコードは、米国によって開発された標準コードです。
たとえば(覚えておくとよいでしょう):
大文字AのASCIIコード値:65(10進数で表しますが、もちろんコンピュータ内では2進数で保存されているため、記憶の都合上10進数で表しています)
大文字 B の ASCII コード値: 66
小文字aのASCIIコード値:97
小文字bのASCIIコード値:98

大文字と小文字の差が 32 であることを見つけるのは難しくありません。大文字と小文字を変換するために使用できるこの違いを覚えておいてください。

2.2 メモリ

コンピューターのメモリ管理では、16 進数は依然として非常に重要です。

8 ビット (バイナリ ビット) = 1 バイト (B)
1024バイト = 1KB
1K=1024=210
1M=1024*1024=220

2.3 マシンコード

マシンコードは実際のコンピュータが理解できるコード値です。ある空間に格納されている値は 78 (10 進数) であると言えますが、マシンコードは 78 の 2 進表現です。
機械語コードには、補数コード、原コード、補数コードの 3 種類があります。

3. C言語の構造

C言語の構成: いくつかのファイル
ファイル: いくつかの関数
関数: 関数ヘッダーと関数末尾
関数ヘッダーと関数本体
ステートメント: 3 種類のステートメント

ステートメントにはコメント、定義ステートメント、および実行ステートメントが含まれます。最も注意すべき点は実行ステートメントです。

3.1 データ構造とデータ型:

4種類のデータ:定数変数表現関数
定数: 値が変化しない量
変数: いつでも、いつでも値が変化する量。
式: 演算子を使用してデータを接続する正当な式
機能:ある関数を計算量として関数を呼び出す

3.2 データとデータ型

データ型: 基本型、構築型、ポインタ型、null 型
基本型: 整数型 int など
構造タイプ: 構造
空の型: void

識別子 (正規):

  1. 予約語(キーワード):全32語。例: int float char if else for
  2. 事前定義された識別子: scanf printf include
  3. ユーザー定義の識別子: 変数名、配列名など。

ユーザー定義の識別子: 最初の文字は文字またはアンダースコアである必要があり、その後に文字、数字、アンダースコアが続きます。
C 言語では大文字と小文字が区別されます。ユーザーは Int をカスタマイズできません。