« ^ »KiBを使う理由を図で考えてみる所要時間: 約 2分データの単位にはKiBやMiBといった単位が使われる事がある。1KiBは1024Bとなる。そういう知識はあるし、常識だと思う。特に疑問を持つような所ではないのかもしれないが、どうしてもしっくり来ないように、ずっと感じていた。だから図を描いてみる事にした。+------------------------------------+ |DIMM | | bit bit bit bit bit bit bit bit | | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b00000000 (0番地、先頭) | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b00000001 (1番地) | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b00000010 (2番地) | +---+---+---+---+---+---+---+---+ | | . | | . | | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b1111100111 (999番地) | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b1111101000 (1000番地) | +---+---+---+---+---+---+---+---+ | 先頭から考えると丁度良くはあるけれど、 | . | アドレスの指定として0b1111101001は指定できる状態になっている。 | . | この桁で表現できる値で0b1111101001より大きな数字のアドレスが無駄になってしまうし、 | . | もしそうだとすると、そのアドレスへのアクセスをエラーにしないといけないため | . | 扱い辛いシステムになってしまう。 | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b1111111110 (1022番地) | +---+---+---+---+---+---+---+---+ | | | | | | | | | | | | Address: 0b1111111111 (1023番地, 先頭を1つ目と考えると1024つ目) | +---+---+---+---+---+---+---+---+ | 末尾のビットが全て1になっていて、キリが良い。 | | +------------------------------------+ソース