LoginSignup
0
0

More than 3 years have passed since last update.

文字列のコンピュータ内部表現(ビット・バイト・エンディアン)、文字コードとは何だったかを思い出すためのメモ

Posted at

文字列のコンピュータ内部表現(ビット・バイト・エンディアン)、文字コードとは何だったかを思い出すためのメモ

だいたい忘れるので寝不足でも理解できるように、自分なりにまとめました。
内部表現という単語の使い方が街がているかもしれません。

コンピュータ内部表現

bit

コンピュータの内部では、基本的に2進数によって表現されている。
一つの位で0 or 1という2つの状態を表現しており、この位が bit (2^1)
バイナリデータ。

byte

8 bit = 1 byte

8 bitをまとめた呼び方

Hex

16進数表現

1byte(8bit)を2進数で表現すると

0 0 0 1 0 0 1 0 (自明に8桁)

これを16進数で表現すると、2^8 = 16^2 より2桁で表現される。
ただし、1byteをまとめて16進数で表現するのではなく、4bitずつ変換する。(2^4=16なので自明)
1byteはHexで2文字。

0001 0010 (bin) -> 12 (hex)
  |    |
  1    2 

endian (エンディアン)

低レイヤの話。
バイトを並べる順番のこと。

  • ビッグエンディアン
  • リトルエンディアン
  • ミックスエンディアン(ミドルエンディアン)

がある。同一システム(アーキテクチャ)ないで完結する処理の場合は、考慮する必要がないが、異なるアーキテクチャのシステムで生成されたバイナリファイルを開くときに注意しなければならない。
どうでも良いが、元ネタはガリバー旅行記

参考

Wikipedia

文字コード

各文字とバイナリでの表現を対応付けたもの。
ASCIIはアルファベットと記号
1byte = 1文字

参考

ASCII
日本語コード

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0