こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

よくゲームでは65535という数字を見る気がするのですがこの数には一体

よくゲームでは65535という数字を見る気がするのですがこの数には一体どういった意味があるのでしょうか?

カテゴリどれにすればいいのか分からなかったので適当にしました。

投稿日時 - 2010-10-26 20:43:47

QNo.6277423

暇なときに回答ください

このQ&Aは役に立ちましたか?

17人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

コンピュータの特性上の話ですね。自身も補足になりますが。

他の方が書かれているようにコンピュータというのは0と1の2進法で全てを構成しています。

そして、その有効範囲を無駄なく使おうとすると数値の場合2の累乗という形で表現されます。
つまり、2の累乗というのは、コンピュータにとって、我々で言うところの10進法。
つまり「キリの良い値」なわけです。

ゲームに限らず、メモリ(今ならば、VRAMの容量の方が判りやすいかも)なども16Mバイト、256MB、512MB等でも2の累乗になっています。
これらにしても、同様の理由からでしょう。

データの容量にしても、1K=1000ではなく、1K=1024であるのもその為。
(その為都合上、一般のキロは「k」で、データ上のキロは「K」と表す場合が多い)

ゲーム上の上限値が256であったり65535であったりするのは、その名残りということでしょうかね。
現在ではたっぷりとデータ容量を扱えるので、無駄データを出してでも人間の視点でキリの良い様に作られている、という感じでしょうか。

投稿日時 - 2010-10-27 08:58:53

ANo.4

16桁の2進数を10進数の正数にすると最大値が「65535」になるんですね。


C言語のunsigned integer型という数値を扱う変数ではCPUのもっとも一般的なレジスタのビット数と同じビット数が割り当てられるのが一般的です。別の言い方をするとCPUのデータバスの幅。
※大人の事情でそうとは言えないケースもありますが…

投稿日時 - 2010-10-27 08:28:22

ANo.3

前の方の16bitに補足ですが、要は2の累乗です。
コンピュータ内は、突き詰めていけば2進数を使っていますので、そういう表し方をします。
よくご覧になるのは、メモリ内の変数格納で16bit幅の変数がよく使われているからだと思います。
で、16bitで符号無し整数だと、次のようになります。便宜上、数字の次に進数を()で表しておきました。
(蛇足ですが、普通は 1111b = Fh = 65535d と書いたりします)

1111111111111111(2) = FFFF(16) = 65535(10)

つまり、1か0を入れられる部屋が16個あって、全部埋めると65535になるのです。
なぜ131071でないのかというと、一番下の桁(LSB)は2の0乗を表しているからです。
つまり、上記の二進数は下記の状態を表しています(上位桁と下位桁をあえて逆に書いていますが)。
1 + 2 + 4 + 8 + 16 + 32 + 64 +...+ 16384 + 32768 = 65535

2^16=65536
2^8=256
2^4=16

あたりはよく使います。
2^10=1024 も、近似計算で便利です。10^3と近いので。

投稿日時 - 2010-10-26 21:05:58

ANo.2

64キロバイト

投稿日時 - 2010-10-26 20:59:45

ANo.1

16BIT=(十進数で)65535

投稿日時 - 2010-10-26 20:47:35

あなたにオススメの質問