メモリやコンピュータのレジスタについて、構造と中身の使い方を説明する論理的なモデルには、玉一つ(1ビット)を使う算盤(そろばん)を考えると分かり易いと思います。ビット位置を指す番号の付け方に二種類あります。現在の標準は、横に長い算盤の右端を0番のビット位置とし、左に順に番号を割り当てます。ビット単位では分かり難いので、8ビット長さを単位としてバイトに区切り、ワードやページを定義して、より大きな単位で切ることもあります。ただし、この単位の構成バイト数の定義方法は、一定していません。バイトの位置は、同じく右から数えます。このとき、相対的に左側を上位、右側を下位と呼びます。この番号並びの約束は、数の桁位置を扱うときは便利です。しかし、文字並びを表すときには右から左向きに詰める順になりますので、ときに混乱を起こします。文字並びは、常識的には左側文字を上位、右側文字を下位と考えますし、改行では、相対的に下位文字が下に繋がります。「上位文字・下位文字」と、「上位バイト・下位バイト」と言うときには向きが逆になります。メモリの使い方を図表に書いて説明するとき、分かり易い説明にしたいときは左上を0番として右と下につなげます。しかし、少し専門家向けの説明では、下から上に積み上げるような表し方をしています。なお、往年のIBMメインフレームでは、左端から右に番号を振る方式でした。この方式は説明が楽ですし、上位・下位などの言葉を必要としませんので、分かり易いところがありました。下の表10.1と表10.2を比べて見て下さい。
表10.1 左上から番号付け
番号↓ |
ビット等の位置番号 |
0 |
0|1|2|3|4|5|6|7|8|9|….. |
1 |
0|1|2|3|4|5|6|7|8|9|….. |
2 |
0 |
1 |
3 |
2 |
.. |
.. |
0 |
1 |
2 |
3 |
.. |
4 |
5 |
6 |
.. |
表10.2 右下から番号付け
.. |
6 |
5 |
4 |
.. |
3 |
2 |
1 |
0 |
.. |
.. |
2 |
3 |
1 |
0 |
2 |
…..|9|8|7|6|5|4|3|2|1|0 |
1 |
…..|9|8|7|6|5|4|3|2|1|0 |
0 |
ビット等の位置番号 |
番号↑ |
2008.10 橋梁&都市PROJECT |