【IT基礎】コンピュータのビットと文字コード

本記事では、IT業界に携わる上での基礎として必要な知識となるコンピュータでのデータの扱い方、ビットやバイトの表現、文字コードをコンピュータが認識する方法などについて解説していきます。

コンピュータが扱えるデータ

現代ではPCを使った仕事が一般的となり、プログラミングや動画編集などさまざまなことが PCで簡単に行えるようになりました。そのため、コンピュータでは多くの種類のデータを扱っていて、とても理解できないような複雑な処理を行なっているイメージがあるかもしれません。

しかし、実はコンピュータの内部で最終的に扱っているデータは「0」と「1」の2つだけです!どんな複雑なデータであっても、コンピュータが処理をする際には「0」と「1」を用いた2進数の形式のデータに変換されて処理が行われます。

この2種類の数字でデータを表す表現の単位をビットやバイトと呼びます。

ビット

ビットはコンピュータが扱うデータの最小の単位と言われており、1ビットは1桁の0か1を表現することが可能で、0か1しか用いずともビット数を増やしていくことで他の数字も表すことができまます。

例えば、2ビットであれば「00」「01」「10」「11」と2進数で4種類の文字を表現することができます。

このようにビット数は増えれば増えるほど表現できる数字の範囲は大きくなり、「Xビットあたりの表現できるデータの数は、2^X通り」となります。4ビットであれば2^4で0~15までの合計16通りのデータを扱うことができるようになります。

バイト

ビットと同様にデータを表す単位の一つで、8ビットのデータ量を1ビットと表現します。8桁の2進数であるため、表現できるデータ量は2^8で0~255までの256種類のデータを扱うことできることを表現していきます。

00000000 -> 0
11111111 -> 255

大きいバイトと小さいバイトの表現

一般的に馴染みのある256GBや512GBなどのスマホのデータ容量や通信量などの値は、1バイトを基準として表現されています。

256GBや512GBなどの値は、ものすごく大きな単位のバイト数であるためバイトを表すBの前に接頭語をつけて表現されています。KBはキロバイト,MBはメガバイト,GBはギガバイト,TBはテラバイトと読み、それぞれ10に3の倍数の乗数をかけた値を表しています。

以下のように1000000000Bと表現されてもどのくらいの値かぱっと見ではわからないため、接頭語使用して1GBと表すことで、パッと10の9乗なんだ!と理解することができます。

1000バイト -> 1KB -> 1 * 10の3乗
1000000バイト -> 1MB -> 1 * 10の6乗
1000000000バイト -> 1GB -> 1 * 10の9乗
1000000000000バイト -> 1TB -> 1 * 10の12乗

逆に小さいバイト数を表す接頭語も存在し、m(ミリ),μ(マイクロ),n)(ナノ),p(ピコ)などがあります。主に秒数などの表現に使われ、1ミリ秒や1マイクロ秒などと表されます。

0.001秒 -> 1ms -> 1 * 10の-3乗
0.000001秒 -> 1μs -> 1 * 10の-6乗
0.000000001秒 -> 1ns -> 1 * 10の-9乗
0.000000000001秒 -> 1ps -> 1 * 10の-12乗

文字コードの仕組み

まず、全勝でお伝えしたようにコンピュータはデータを扱う際に0と1の二進数で扱います。我々人間が扱う「あ」や「A」のような文字をPCでも扱えるように文字に対して数値を割り当てたものが文字コードです。

「あ」や「A」をコンピュータが扱うための2進数に変換すると以下のような数値になります。

あ  ->  0011000001000010
A   ->  01000001

文字コードの種類

文字コードには種類があり、それぞれの用途があります。今回は代表的な文字コードをいくつか紹介します。

たまにメール文などで発生するも文字化けなどはこのm文字コードが異なることによって発生する事象です。

ASCIIコード

英語・数字・記号などの基本的な文字列を扱うことができ、他のすべての文字コードの基盤となる文字コードです。

すべてのコンピュータ環境で利用可能である反面、日本語のひらがなや漢字に対応していないことがデメリットとなります。

UTF-8

Unicodeという世界中のあらゆる言語を表現できる文字コードの一種で、主要なOSやアプリケーション内でサポートされています。

ASCIIコードとの互換性があり、Webアプリケーションなどで一般的に使用される文字コードとなります。そのため、アプリケーション開発などを行なっていく際にはこちらの文字コードを使用する前提で考えていただくといいです。

シフトJISコード

主に日本語のひらがなや漢字を扱うことに特化した文字コードで英語・数字・記号などを扱うことができるASCIIコードにひらがなや漢字を追加した文字コードになります。

デメリットとして、世界標準の文字コードではないため、他の文字コードとの互換性がなく文字化けがしやすく、Webアプリケーションの開発などでは採用されません。

最後に

本記事では、コンピュータがデータを扱う仕組みと文字コードの役割と種類について解説してきました。

  • コンピュータではすべてのデータが「0」「1」を用いて扱われる。
  • データの単位にビット,バイトがある。
  • Webアプリケーションなどを作成する際にはUTF-8という文字コードがおすすめ。

他にもSwiftUIという言語に関する@Binding変数を使用してリストから詳細画面への遷移やObservableObjectを使用したオブジェクトをViewと連携させる方法についても解説していますのでぜひご確認お願いします。