PR

【C・C++】ビット・バイトとは?【単位一覧】

アイキャッチ C++
この記事は約3分で読めます。

ビット・バイトといった単位関連についての記事です。
n進数などについても簡単に解説しています。

のんびり丸

WEBアプリの開発等をしています。
日々の学習の備忘録として運営していこうと思います。

のんびり丸をフォローする

ビットとは?

コンピューターは、電気信号がオフの状態【0】とオンの状態【1】で情報を表します。
この【0】or【1】の値を取る情報の最小基本単位をビットと言います。

バイトとは?

ビットが8つ集まったものを1バイトと言います。
ファミコン時代の音楽も8bitなどと呼ばれていますね。

1バイトで、2^8 = 256通りの情報を表すことが出来ます。

ビット・バイトの単位

単位読み方情報量
bビット-
Bバイト1B = 8b
KBキロバイト1KB = 1024B
MBメガバイト1MB = 1024KB
GBギガバイト1GB = 1024MB
TBテラバイト1TB = 1024GB
PBペタバイト1PB = 1024TB
EBエクサバイト1EB = 1024PB
ZBゼタバイト1ZB = 1024EB
YBヨタバイト1YB = 1024ZB

2^10 = 1024 ごとに単位が繰り上がります。

sizeof()

sizeof()を使うと、変数や型がメモリ上に占めるバイト数を取得することが出来ます。

sizeof(○○)

コーディング例①

#include <stdio.h> // printf()を使用するために必要

int main()
{
	int a = 10;
	char b = 'a';
	char c[] = "Hello";
	char d[15] = "こんにちは";

	printf("int型 = %dバイト\n", sizeof(a));
	printf("char型 = %dバイト\n", sizeof(b));
	printf("cのバイト数は、%dバイトです。\n", sizeof(c));
	printf("dのバイト数は、%dバイトです。\n", sizeof(d));

	return 0;
}
出力
int型 = 4バイト
char型 = 1バイト
cのバイト数は、6バイトです。
dのバイト数は、15バイトです。

文字コード

UTF-8

UTF-8【ユーティーエフエイト】とは、UNICODE(国際的な文字コード規格)の一つであり、テキストデータをエンコードする方式のことです。

UTF-8では、ASCII文字(英数字や一部の特殊文字)は1バイトで表現され、日本語などの文字は2~4バイトで表現されます。
また、UTF-8は世界で最も普及している文字コードでもあります。

Shift_JIS

Shift_JIS【シフトジス】とは、日本語用に開発された文字をエンコードする方式のことです。
Shift_JISでは、半角文字は1バイトで表現され、全角文字は2バイトで表現されます。

正式名称は、「Shift_Japanese Industrial Standards」らしいです。

n進数

冒頭でも少し触れましたが、コンピューターはオフの状態【0】とオンの状態【1】で情報を表します。
なので、それに関連した【n進数】についても少し解説しておきます。

普段我々が使っている数字は、10進数です。
人間の指の数が10本なので、10進数になったと言われています。

コンピューターの場合は、電気信号のオン・オフの2通りなので、2進数が利用されます。
また、2進数と互換性が高い16進数も利用されます。

16進数の表記方法

C++の中で、数値を16進数表示にしたい場合は、数字の前に【0x】を付けます。
また、書式指定では【%x】を利用します。

コーディング例①

#include <stdio.h> // printf()を使用するために必要

int main()
{
	int a = 12;
	char b = 0x11;
	printf("aは10進数で%d、16進数で%x\n", a, a);
	printf("aは10進数で%d、16進数で%X\n", a, a);
	printf("bは10進数で%d、16進数で%x\n", b, b);

	return 0;
}
出力
aは10進数で12、16進数でc
aは10進数で12、16進数でC
bは10進数で17、16進数で11

数字の前に【0x】を付けると、16進数の表記となります。
【%x】を【%X】にすると、大文字表記となります。

タイトルとURLをコピーしました