• 締切済み

16ビットが65536バイト?

来週のIPAのテストに向けて勉強中です。 来週なのにわからないことだらけで焦っています。 8ビットが1バイトですよね? IPパケット長のフィールドが16ビット、つまり2バイトです。 16ビットで表すことのできるができる大きさは2^16=65536ということも理解できます。 が、単位は何になるのでしょうか? いろいろなテキストには65536バイトと書いてあります。 65536まで表現できるのはわかるのですが、なんで単位がバイトになるのかが、わかりません。 どなたか教えてください。

みんなの回答

  • wanda1
  • ベストアンサー率100% (1/1)
回答No.6

他の人も答えているとおり。 16ビットで表現できるのは、65536通りの数値(0~65535) IPパケットフィールドが表現したいのは、「長さが何バイトか」。 よって65535バイト どうして単位がビットじゃなくて「バイト」になるか?ってのは TCPIPの国際規格でそう決まってるからじゃね。 としか言えません。 強いていえば送信単位の都合。 あなたの家の体重計が、どうしてグラム単位じゃなくキログラム単位で数値が振ってあるかと、大差無い気がします。 乱暴な言い方をしますが、 IPAの資格試験はもっと大雑把(=要点を捉えてなぞっていく)な勉強の仕方をしないと、落ちます。

  • hue2011
  • ベストアンサー率38% (2801/7250)
回答No.5

2センチの紙きれがあります。付箋です。ここに「3万キロメートル」と書くのは自由ですね。 実際にこれを論文の端に貼って考えるときは、3万キロメートルだという意味がそこにはあります。 でも紙は2センチです。 このたとえでわかりませんか。 16ビットというのは、入れもののサイズは2バイトです。それより大きいものではありません。 ここに16進で10、と入れたら、2と言う意味を格納したわけです。 これは2ビットのことかもしれないし2バイトのことかもしれないし、2ギガバイトのことかもしれません。 この入れものには0から65535までの数字つまり65536通りのデータを格納できます。でも入れもの自体は2バイトです。 ここで、新しい用語ですが、覚えてください。データバスとアドレスバスです。 この16ビットの入れものに入っているものを何であると扱うか、という決めをするのです。 データバスというのは、中にはいっているものが数字であるという見方です。2バイトか2キログラムか2冊か2メートルか、わかりませんが中身はデータとみると考えるのです。 アドレスバスというのは、どこを見に行け、という指定をする見方です。 そのデータは自分からみて2バイト先にあるから見に行け、という意味で、2を格納すると言う話です。 アドレスバスとして考えるのであれば2バイトのエリアは、0バイトめからはじめて65536バイトに住所番号をふれるということなのです。 このやり方はコンピュータ技術では非常に重要な考えかたです。 どこを見に行け、ということが、特定の固定した場所に書いてあるということが、です。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.4

勘違いされていませんか。 他の回答者さんも示しているように質問にある65536には単位はありません。 10進数で表現された単なる数値です。 敢えて単位を付けるなら、    65536種類 となりますよ? 1パケットの中で65536種類の表現ができると言うだけです。 単位は絶対にバイトにはなりません。 逆に考えてみ。 65526バイトって、何ビットで、そして表現できる最大の数値っていくつよ。 テキストを間違って読んでいると思いますよ。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.3

>16ビットで表すことのできるができる大きさ であれば、2^16=65536通り 16ビットのアドレスで、指定(確保)することが できるメモリ容量を指す場合は「バイト」になり ます。 メモリのしくみと種類 http://www.tij.co.jp/lsds/ti_ja/general/mcu_basics/mcu05_memory.page >メモリは、1バイト(8ビット)の大きさの小 >部屋がぎっしりと並んでいて、各部屋に順番に >アドレス(部屋番号)が付けられた構成に >なっています。

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.2

2進数に特に単位はありません。 10進数で8ケタでは0から99999999までの数を表すことができますが、特に単位はないのと同じです。具体的な場面では「リンゴが2個」「車が2台」と単位は付くでしょうけど。 メモリアドレスを2進16ビットで表せば、0~65535の65536バイトに対応すると思いますけど。

  • drum_KT
  • ベストアンサー率43% (1108/2554)
回答No.1

>なんで単位がバイトになるのか そのように決めてあるからです。これは単位換算の問題ではありません。「IPパケット長」というフィールドに「何を設定するか」という定義の問題です。