文字と2進数、10進数の関係とキーコードについて
この記事では、コンピュータにおける文字の表現方法について。説明する
コンピュータには、文字を表すために2進数や10進数を用いることがある。
1. 目的
・文字が2進数、10進数で使用できることを理解する。
目次
2. 文字を2進数で表現する
・コンピュータにおいて、文字は通常、2進数で表現される。
・例えば、アルファベットの「A」は、2進数で01000001と表現される。
・1桁の2進数は0か1のどちらかであり、8桁の2進数で1文字を表現する。
・文字を2進数で表現することで、コンピュータは文字を扱うことができる。
3. 文字を10進数で表現する
・文字を10進数で表現することもできる。
・例えば、「A」の10進数表現は65。
・このように、それぞれの文字に対応する数値がある。
※文字を2進数、10進数で表したように、文字を数値として扱うことが出来る。
このため、C言語などで、文字を出力する際に、
・数値で指定
・文字の比較。
・文字の足し引き。
などが出来る。
4. 2進数、10進数、文字の対応表
文字と数値の対応は下記記事を参考
(キーコード表で検索)
5. プログラムで確認
動作:
・関数1で10進数とその対応する文字を表示
・関数2で10進数と2進数とその対応する文字を表示
#include <stdio.h> /** * キーコードで割り振られている全ての文字の数値を10進数で表示する関数 */ void printDecimalValues() { printf("Decimal values:\n"); // 0から255までのキーコードに対応する文字の10進数値を表示するループ for (int i = 0; i < 256; i++) { printf("%d: %c\n", i, i); } } /** * キーコードで割り振られている全ての文字の数値を2進数で表示する関数 */ void printBinaryValues() { printf("Binary values:\n"); // 0から255までのキーコードに対応する文字の2進数値を表示するループ for (int i = 0; i < 256; i++) { printf("%d: ", i); // 2進数表記の各桁を表示するループ for (int j = 7; j >= 0; j--) {
// ビット演算を使用して、iのj桁目の値を取得する
printf("%d", ((i >> j) & 1)); } printf(" (%c)\n", i); // 対応する文字も表示する } } /** * メイン関数 */ int main() { printDecimalValues(); printf("\n"); printBinaryValues(); return 0; }
結果:https://paiza.io/projects/8Vd31VMqYkknCC7J7hQFZQ
・2進数の表示などについては下記記事を参照
→ソフトウェア基礎知識(2進数から10進数) - Project_OKI’s diary
・>>などの演算子については下記記事を参照
→C言語基礎知識21(演算子) - Project_OKI’s diary
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・C言語基礎知識6(関数) - Project_OKI’s diary
・C言語基礎知識7(構造体1) - Project_OKI’s diary
・C言語基礎知識8(enum:列挙型) - Project_OKI’s diary
・C言語基礎知識9(typedef) - Project_OKI’s diary