あなたホントに64ビットを説明できますか?64ビットコンピューティング最前線(1/2 ページ)

われわれは本当に64ビットがもたらす恩恵を理解しているだろうか。本特集では、64ビットに関する基本的な知識から、64ビットプログラミングへの取り組み方やその考え方、注意点をなどを分かりやすく解説していく。

» 2005年06月08日 01時10分 公開
[C MAGAZINE]

C MAGAZINE 2004年10月号第3特集「64ビットコンピューティング」より転載

 プロセッサPCの世界は4ビットの時代から始まり、Z80に代表される8ビット、8086やMPU68000に代表される16ビット、i386やPentiumに代表される32ビットと常に進化を続けてきました。

 そして現在、PCはついに64ビットの領域に入ってきました。この「64ビット化」によって、われわれはいくつかの恩恵を受けられることになりますが、それと同時にプログラミングの考え方も、64ビット化に合わせてある程度柔軟にしていかなければなりません。

 これからの64ビットの世界を生き残るプログラマの条件とは何なのでしょうか。本特集では、コンピュータの64ビット化によっていったい何が起こるのか、また64ビットプログラミングへの取り組み方やその考え方、注意点をなるべくわかりやすく説明します。

64ビットとは?

 64ビットとは、具体的にはどのようなものなのでしょうか。本誌の読者層を考えると、ここであらためて説明する必要もないかもしれませんが、確認という意味で少しだけ触れさせてください。

 64ビットとは、Fig. 1のようにビット(1または0というコンピュータの最小単位)の数が64個並んでいることをいいます。

Fig. 1

 この64個の1または0の組み合わせにより表現できる値の幅は、ざっと264ぶんもあることになります。いったいどれだけの桁数があるのか、それぞれのビット数と値をTable 1にまとめてみました。

Table 1 ビット数と値の範囲
ビット数 値の範囲(アドレッシングの範囲) サイズ
4ビット 24 0 〜 16[0xF] 16バイト
8ビット 28 -128 〜 +127
0 〜 255[0xFF]
256バイト
16ビット 216 -32768 〜 +32767
0 〜 65535[0xFFFF]
64Kバイト
32ビット 232 -2147483648 〜 2147483647
0 〜 4294967295[0xFFFFFFFF]
4Gバイト
64ビット 264 -9223372036854775808 〜 9223372036854775807
0 〜 18446744073709551615[0xFFFFFFFFFFFFFFFF]
16Eバイト

 この値の範囲を見比べてみると、64ビットという値がすさまじく大きな値であることがひと目でおわかりいただけるでしょう(ある意味ひと目ではわからないかもしれませんが……)。64ビットでは、表現可能なアドレス範囲は16Eバイト(エクサバイト)になります。

 なお、参考までに各値の単位とバイナリ値の比較をTable 2にまとめてみました。ここからも値の大きさがうかがえます。

Table 2 値の単位とバイナリ値
単位 バイナリ値
キロ(K) 1,000 1,024
メガ(M) 1,000,000 1,048,576
ギガ(G) 1,000,000,000 1,073,741,824
テラ(T) 1,000,000,000,000 1,099,511,627,776
ペタ(P) 1,000,000,000,000,000 1,125,899,906,842,624
エクサ(E) 1,000,000,000,000,000,000 1,152,921,504,606,846,976

       1|2 次のページへ

Copyright(c)2007 SOFTBANK Creative Inc. All rights reserved.

注目のテーマ