例1 前回教材の24bitBMP画像の水平方向解像度
0x0012バイト目から4バイト
00 00 03 39 (hex)
256*3 + 16*3 + 9 → (計算してみて下さい)
ruby言語を使って簡単に十進変換させた実演図
同じく 正弦波の音声データ(WAV)の、サンプリング周波数
0x0018バイト目から4バイト
00 00 AC 44 (hex)
(略) → (おなじく)
右図のように1bit/1画素の場合、各画素の値は 0 か1 のいずれかの値。
日の丸だと白地の部分が 0、円内は(黒なので)1 が、右図のようなイメージで並ぶだろう。
これを 8bitずつの区切りで(黄色い線で幾つか図示したように)まとめて、 それぞれを1つのbyteとして表したものが、十六進ダンプ出力として見えている。
黒丸の外周の境界線にまたがるバイトでは 0と1が陣取りをするように並ぶことになる。
その結果、十六進ダンプの各byteの値は(北極と南極に位置する例外的な場所を除いて)以下のいずれかの値になるだろう。
MSB側の 値 |
個数 |
LSB側の 値 |
個数 |
Hex | Dec | ||
---|---|---|---|---|---|---|---|
1 | 8 | => | FF | 255 | |||
1 | 7 | 0 | 1 | => | FE | 254 | |
1 | 6 | 0 | 2 | => | FD | 253 | |
… | |||||||
1 | 1 | 0 | 7 | => | 80 | 128 | |
0 | 8 | => | 00 | 0 | |||
0 | 7 | 1 | 1 | => | 01 | 1 | |
0 | 6 | 1 | 2 | => | 03 | 3 | |
… | |||||||
0 | 1 | 1 | 7 | => | 7F | 127 |
RGB各色(光の3原色)の光の強さを各8bitで表現する。
R | 8 |
G | 8 |
B | 8 |
計 | 24(bit) |
日の丸の画像だと以下の2つのいずれかの値になる(黒は参考に付記しただけのもの)。
R | G | B | |||
FF | FF | FF | → | 白 | |
FF | 00 | 00 | → | 赤 | |
00 | 00 | 00 | → | 黒 |