プロが教えるわが家の防犯対策術!

タイトルの通りですが、0x7ADを表現するのに必要なビット数は何ビットでしょうか?
2進数に直した場合、011110101101となると思いますが、先頭の0は1ビットとしてカウントしなくても良いのでしょうか?

A 回答 (3件)

11 bitあれば表現できるので11 bit。


0x07ADとあったら16 bit。これをまさか13 bitという人はいないでしょう。
    • good
    • 1

「表現する」の意味によります。


 0x7ADと、もうひとつたとえば0xF731Aのふたつの数があるとします。これを「表現」(すなわち伝達)するのに必要最小限のビット数は1bitです。実際「0が来たら0x7ADのこと、1が来たら0xF731Aのこと」というプロトコル(規約)を決めておけば1bitで表現できる。このとき、伝達される情報量は1 Sh以下です。情報量は確率による。「0か1か、どっちが来るかは1/2の確率だ」というときに1 Shであり、「必ず0が来る(あるいは必ず1が来る)」という場合なら0 Shですね。
 さて、ご質問は「必ず0が来る」という話ですから、情報量は0 Sh。「何も言わなくたって0x7AD」というプロトコルにしとけば良いだけなんだから、当然答は0 bit。

ところで、
> 2進数に直した場合、011110101101となると思いますが
いや、11110101101 ですよ。これを10進法に直したら01965、と答える?
    • good
    • 1

>0x7ADを表現するのに



それは何を表記したものなのか、という条件がなければ無意味な質問です。

「A」や「D」は「26文字あるアルファベットの1つ」なのか、もっと文字数の多い言語の「1文字」なのか、「大文字と小文字を区別する文字コード」なのか、「16進数の 10 や 13 を表すもの」なのか。
「x」は「小文字のエックス」なのか、特別な意味があるのか。

一般的な「ASCII コード」などを表記するときの書き方から類推して、
・先頭ビットは 0
・2ビット目~4ビット目の「3ビット」で「7」を表現
 (「x」は、「4ビット16進の1ビット目が欠落していることを示す)
・次の「4ビット」で「16進のA(10進の「10」)を表現
・次の「4ビット」で「16進のD(10進の「10」)を表現
ということであれば、
「0x7」で4ビット →0111
「A」で4ビット →1010
「D」で4ビット →1101
の「計12ビットが必要」ということになります。

先頭の「0」は、「1ではない 0 である」ということを示すためには必要不可欠です。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!