20131110【C言語】ビットフィールドを持つ構造体を共用体のメンバで使う
お題
ビットフィールドを持つ構造体を共用体のメンバで使う
プログラム概要
文字を入力させ、それをビットで出力する
ソース
#include <stdio.h>
struct sample {
unsigned a: 1;
unsigned b: 1;
unsigned c: 1;
unsigned d: 1;
unsigned e: 1;
unsigned f: 1;
unsigned g: 1;
unsigned h: 1;
};
union key_type {
char ch;
struct sample bits;
} key;
int main(void)
{
printf("Please input key: ");
key.ch = getchar();
printf("Binary code: ");
if (key.bits.h)
printf("1 ");
else
printf("0 ");
if (key.bits.g)
printf("1 ");
else
printf("0 ");
if (key.bits.f)
printf("1 ");
else
printf("0 ");
if (key.bits.e)
printf("1 ");
else
printf("0 ");
if (key.bits.d)
printf("1 ");
else
printf("0 ");
if (key.bits.c)
printf("1 ");
else
printf("0 ");
if (key.bits.b)
printf("1 ");
else
printf("0 ");
if (key.bits.a)
printf("1 ");
else
printf("0 ");
return 0;
}
実行結果
Please input key: X
Binary code: 0 1 0 1 1 0 0 0