C言語:データを二進数で保存する方法【初心者向け】
C言語では、データをバイナリ形式で保存する方法として、ビット演算子を使用することができます。以下は一般的に使用されるビット演算子のいくつかです:
- 按位与(&):二つの数の対応するビット毎にAND演算を行い、結果は各ビットが0または1になります。
- ビット単位の論理和(|):2つの数字の対応するビットをOR演算し、結果は各ビットが0または1である。
- 排他的に XOR 演算子(^):2つの数字の対応するビットを XOR 演算し、結果は対応するビットが異なる場合は1、同じ場合は0になります。
- ~:オペランドの各ビットを反転させる。
これらのビット演算子を使用することで、データをバイナリ形式で保存し、対応するビット演算を行うことができます。例えば、ビットAND演算子を使用して整数の特定のビットを1に設定したり、ビットOR演算子を使用して整数の特定のビットを0に設定したりすることができます。
さらに、C言語ではビットフィールド(bit field)を使用してデータを格納することもできます。ビットフィールドは構造体のメンバーであり、構造体のメンバーのビット数を指定することで、データのバイナリ格納を実現します。例えば:
struct {
unsigned int flag1 : 1; // 1位
unsigned int flag2 : 1; // 1位
unsigned int flag3 : 1; // 1位
unsigned int flag4 : 5; // 5位
} bits;
上記の例では、4つのビットフィールドメンバーを含む構造体が定義され、各メンバーは対応するビット数が指定されています。これにより、データのバイナリストレージをビットフィールドを使用して実現することができます。