サイトアイコン ツナのエンジニアブログ

C言語/C++における2進数

可能な進数表記

C言語では通常使う10進数の他に2、8、16進数表記を用いることが可能です。

表のように、数の先頭に接頭辞をつけます。

2進数 0b
8進数 0
16進数 0x

以下がサンプルコードです。

binaly_sample1.c

#include <stdio.h>

int main(void)
{
	printf("%d\n", 255);
	printf("%d\n", 0b11111111);
	printf("%d\n", 0377);
	printf("%d\n", 0xff);

	return 0;
}

上から10、2、8、16進数で10進数255を表しています。

以下のように表記の異なる演算も可能です。

binaly_sample2.c

#include <stdio.h>

int main(void)
{
	printf("%d\n", 256 + 0b100000000 + 0400 + 0x100);

	return 0;
}

また、printf()で進数表記を変更する場合は以下のようにします。

binaly_sample3.c

#include <stdio.h>

int main(void)
{
	printf("%d\n", 256);
	printf("%o\n", 256);
	printf("%x\n", 256);

	return 0;
}

上から10、8、16進数表記になります。
2進数表記はありません。自分で2進数表記する関数を作ってみましょう。

ビット演算

論理和、論理積などのビット演算もサポートしています。
詳しくはビット演算子を参照してください。
https://tunasalmon.com/2017/01/30/%e3%83%93%e3%83%83%e3%83%88%e6%bc%94%e7%ae%97%e5%ad%90/



(adsbygoogle = window.adsbygoogle || []).push({});

モバイルバージョンを終了