プログラムの作成
本テキストでは、C++と呼ばれるプログラミング言語を使用してプログラムを記述していきます。
C++は、C言語というプログラミング言語を拡張したもので、C言語とは概ね上位互換性があり、C言語のプログラムは基本的にそのままC++のプログラムとしても動きます。
C++には、C言語には無い様々な便利な機能があり、ESP32の標準のプログラミング言語となっています。一方、マイコンによっては開発環境がC++に対応しておらず、C言語のみの場合もあります。
本テキストでは、原則として容易にC言語で置き換え可能な範囲内でC++の機能を使用することにします。
また、以降の記述では、C言語もC++も対応している機能についてはプログラミング言語名として「C言語」という呼称を用い、C言語には無いC++の機能を用いる場合にのみ「C++」という呼称を用いることにします。
プログラムはVisual Studio Codeで記述していきます。
プログラムを書く際、以下のことに注意しましょう。
- 基本的に半角英数字、記号を使用する。
- 大文字と小文字は区別される。
- 空白は半角スペースやTabキーを使い、改行はEnterキー使う。
16進数
10進数 | 2進数 | 16進数 |
---|---|---|
0 | 0 | 0 |
1 | 1 | 1 |
2 | 10 | 2 |
3 | 11 | 3 |
4 | 100 | 4 |
5 | 101 | 5 |
6 | 110 | 6 |
7 | 111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
16 | 1 0000 | 10 |
17 | 1 0001 | 11 |
… | … | … |
100 | 110 0100 | 64 |
200 | 1100 1000 | C8 |
… | … | … |
255 | 1111 1111 | FF |
2進数は、ビット単位で操作を行うコンピュータには扱いやすい表記法ですが、数字が大きくなると桁数が増えてしまいます。一方、私たちが普段使っている10進数からは、どのビットが1でどのビットが0なのかを読み取るのは困難です。
そこで、プログラミングで一般的に使われるのが16進数です。16進数は、0~15までの数を0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、Fで表します。
16進数の1桁は2進数の4桁(4ビット)に対応します。ですから、桁数が多い場合は2進数を4桁ずつ区切って16進数に置き換えることができます。なお、A~Fは大文字、小文字のどちらでも構いません。
16進数を表す時は、数値の前に 0x(ゼロエックス)を付けます。
- 例) 10 → 0x0A 18 → 0x12 175 → 0xAF
本コースの環境では、プログラム中で2進数を直接使うこともできます。
2進数を表す時は、数値の前に 0b(ゼロビー)を付けます。
- 例) 10 → 0b1010 18 → 0b00010010 175 → 0b10101111
なお、プログラム中での2進数表記は2023年末時点では標準のC言語には含まれておらず、標準のC++に取り入れられたのも2014年とC++の歴史の中では比較的最近です。
本コースの環境で使われているコンパイラ「GCC」は2進数表記に対応していますが、使えない環境も比較的多いのでその際は16進数表記を使いましょう。
C言語では、この他に8進数も使うことができます。
8進数を表す時は、数値の前に0(ゼロ)を付けます。
- 例) 10 → 012 18 → 022 175 → 0257
なお、数値の前に0を付けると上記の例のとおり8進数と解釈され、桁を揃える「ゼロ埋め」にはならないので注意しましょう。
計算機
Windowsの標準アプリ「計算機」の「プログラマー」モードを使うと、進数変換が簡単にできます。