ビットパターンの計算問題|かんたん計算問題

この連載では、基本情報技術者試験で、多くの受験者が苦手意識を持っている「計算問題」に的を絞って、問題の解き方をやさしく説明します。
今回のテーマは、「ビットパターン」の計算問題です。はじめに、ビットパターンの意味を説明します。それがわかったら、過去問題を解いてみましょう。
様々な分野で出題されていますが、ビットパターンの意味をきちんと理解できていれば、どんな分野の問題でも解けるはずです。
もくじ
ビットパターンとは?
たとえば、1 ビットで表せるビットパターンは、 0 と 1 の 2 通りです。
- 2 ビットなら、00 、01 、10 、11 の 4 通り
- 3 ビットなら、000 、001 、010 、011 、100 、101 、110 、111 の 8 通り
当然のことですが、ビット数が多いほど、表せるビットパターンの種類も多くなります。
それでは、8 ビットで表せるビットパターンは、何通りでしょう? すべてのビットパターンを書き出して数える必要はありません。
何ビットの 2 進数であっても、それぞれの桁は 0 と 1 の 2 通りに変化します。したがって、
2 ビットなら 2 × 2 = 4 通り
3 ビットなら 2 × 2 × 2 = 8 通り
になるのです。ビット数だけ 2 を掛ければよいのです。このことから、 8 ビットなら、2 を 8 回掛けて、
2 × 2 × 2 × 2 × 2 × 2 × 2 × 2 = 256 通り
だとわかります。
何度も掛け算をする式を書くのは面倒なので、べき乗の表現を使うことにしましょう。
たとえば、8 ビットで表せるビットパターンは、2 を 8 回掛けるので 28 通りと表せます。
それでは、N ビットで表せるビットパターンの数を、べき乗の表現を使って表すとどうなるでしょう?
2 を N 回掛けるので 2N 通りです。
コンピュータの内部では、電線を使って 2 進数のデータを伝えています。1 本の電線で 1 ビットの 2 進数を表します。
それでは、256 種類のビットパターンを表すには、何本の電線が必要でしょう? 先ほど説明したように、8 ビットで表せるビットパターンは 256 通りです。
電線 1 本でビットを表すので、 8 本の電線があれば 256 種類のビットパターンを表せます。電線の本数 = ビット数というイメージをつかんでください。
特定のビット数(電線なら本数)で表せるビットパターンの数は、 2 のべき乗で示せます。
20 から 210 までのビットパターンの数が 10 進数でいくつになるかを覚えておくとよいでしょう。8 を「ぱあ」、64 を「ろくよん」のように、IT 業界特有の読み方をするものもあります。
下図にまとめておきますので、
「いち、に、よん、ぱあ、じゅうろく、さんじゅうに、ろくよん、いちにっぱ、にごろ、ごーいちに、せんにじゅうよん」
と、何度も声に出して読んでみましょう。
そして、これらの数を見たら「これは 2 のべき乗だ!」とピンと来るようになってください。ピンと来ることで解ける問題が出題されているからです。
べき乗 | 20 | 21 | 22 | 23 | 24 | 25 |
---|---|---|---|---|---|---|
10進数 | 1 | 2 | 4 | 8ぱあ | 16 | 32 |
べき乗 | 26 | 27 | 28 | 29 | 210 |
---|---|---|---|---|---|
10進数 | 64ろくよん | 128いちにっぱ | 256にごろ | 512ごーいちに | 1024 |
ビット数からビットパターンを求める問題
32 ビットで表現できるビットパターンの個数は,24 ビットで表現できる個数の何倍か。
ア 8 イ 16 ウ 128 エ 256
それでは、過去問題を解いてみましょう。はじめは、情報の基礎理論の分野の問題です。
この記事の冒頭で説明したように、N ビットで表せるビットパターンの数は、2 を N 回掛けるので 2N 通りです。
24 ビットで表せるのは 224 通りです。
232 通りは、224 通りの、
232 ÷ 224
= 28
= 256 倍
です。
したがって、選択肢エが正解です。
正解エ
コード化に必要なビット数を求める問題
英字の大文字 ( A ~ Z ) と数字 ( 0 ~ 9 ) を同一のビット数で一意にコード化するには,少なくとも何ビットが必要か。
ア 5 イ 6 ウ 7 エ 8
次も、情報の基礎理論の分野の問題です。
コード化とは、本来なら数値でないデータを、数値に置き換えることです。英字の大文字の A ~ Z は 26 種類で、数字の 0 ~ 9 は 10 種類なので、両方を合わせると 36 種類あります。
これらの文字を数値に置き換えるには少なくとも何ビット必要か、つまり 36 種類のビットパターンを得るには、少なくとも何ビットあればよいかを考えてください。
- 1 ビットで 21 = 2 通り
- 2 ビットで 22 = 4 通り
- 3 ビットで 23 = 8 通り
- 4 ビットで 24 = 16 通り
- 5 ビットで 25 = 32 通り
となりますが、まだ 36 通りには足りません。さらに、
- 6 ビットで 26 = 64 通り
となり、ようやく 36 通りを表せます。
したがって、選択肢イが正解です。
文字に割り当てないビットパターンが、64 通り- 36 通り = 28 通りもあって、もったいないようですが、仕方ありません。
下図に、6 ビットのビットパターンを 36 通りの文字に割り当てた例を示します。
ビットパターン | 文字 |
---|---|
000000 | A |
000001 | B |
: | : |
11001 | Z |
11010 | 0 |
: | 1 |
: | : |
100011 | 9 |
100100 | (未使用) |
: | : |
111111 | (未使用) |
正解イ
メモリのアドレスバスの本数を求める問題
1 M バイトのメモリを図のように MPU に接続するとき,最低限必要なアドレスバスの信号線の本数 n はどれか。ここで,メモリにはバイト単位でアクセスするものとし、1 M バイトは 1,024k バイト,1k バイトは 1,024 バイトとする。
ア 18 イ 19
ウ 20 エ 21今度は、ハードウェアの分野の問題です。
アドレスバスとは、メモリのアドレスを指定する信号線(電線)のことです。メモリの中には、1 バイトの大きさのデータの入れ物が数多く用意されています。
メモリのアドレスは、それぞれの入れ物を識別するための番号です。1 本のアドレスバスで、1 桁の 2 進数を伝えられます。
1 M バイト
= 1k × 1k バイト
= 1,024 × 1,024 バイト
なので、このメモリの中には、1,024 × 1,024 個の入れ物があります。
この 1,024 という数字を見て、ピンと来てください。
1,024 は、2 のべき乗であり、1,024 = 210 です。
1,024 × 1,024
= 210 × 210
= 220
です。
220 は、20 ビットのビットパターンであり、20 本の電線で表せます。
20 本の電線で表すビットパターンを、1,024 × 1,024 個の入れ物に割り当て、それぞれを識別するアドレスにするのです。
したがって、選択肢ウが正解です。
メモリの入れ物とアドレスのイメージを下図に示します。
20ビットのアドレス | メモリの入れ物 |
00000000000000000000 | 1バイトのデータ |
00000000000000000001 | 1バイトのデータ |
︙ | ︙ |
11111111111111111110 | 1バイトのデータ |
11111111111111111111 | 1バイトのデータ |
正解 ウ
接続可能なホストの最大数を求める問題
IPv4 で 192.168.30.32/28 のネットワークに接続可能なホストの最大数はどれか。
ア 14 イ 16
ウ 28 エ 30次は、ネットワークの分野の問題です。
IPv4( IP version 4 )では、IP アドレスを 32 ビットで表して、上位桁をネットワークアドレス( LAN の識別番号)とし、下位桁をホストアドレス(個々の通信機器の番号)としています。
4 ビットの下位桁で表せるビットパターンは、24 = 16 通りです。
ただし、すべての桁が 0 のビットパターンと、すべての桁が 1 のビットパターンは、ホストアドレスとして使えない約束になっています。
- すべての桁が 0(ここでは 0000 )
- ホストアドレスを無設定として、ネットワークアドレスだけを示す
- すべての桁が 1(ここでは 1111 )
- 同じ LAN 内のすべてのホストをあて先とするブロードキャスト(一斉同報)に使う
16 通りから、これら 2 つを除いた 16 – 2 = 14 通りのビットパターン( 0001 ~ 1110 )が、ホストに割り当て可能です。
したがって、選択肢アが正解です
正解ア
label関連タグIP アドレス
ブルートフォース攻撃の試行回数の最大値を求める問題
AES-256 で暗号化されていることが分かっている暗号文が与えられているとき,ブルートフォース攻撃で鍵と解読した平文を得るまでに必要な試行回数の最大値はどれか。
ア 256 イ 2128 ウ 2255 エ 2256
最後は、セキュリティの分野の問題です。
ブルートフォース( brute force = 暴力、力ずく)攻撃とは、様々な数字の鍵を試行して、暗号文を解読することです。
たとえば、鍵が 4 ビットなら、24 = 16 通りのビットパターンを鍵として試行することで、暗号文を解読できます。
ただし、こんなに少ない試行回数では、すぐに解読されてしまうので、実際の暗号文では、もっと大きなビット数の鍵が使われています。
この問題では、その例として、AES-256 という暗号化技法を取り上げているのです。
AES は、Advanced Encryption Standard(高度な暗号化の標準)の略で、共通鍵暗号アルゴリズムの一種です。それでは、256 とはなんでしょう?
「ピンと来た! 256 は、2 のべき乗だ! 28 = 256 だから、AES-256 は、8 ビットのビットパターンを鍵としているのだろう。したがって、正解は、選択肢アだ」
と思われるかもしれませんが、それは早合点です 😅😅😅
8 ビットのビットパターンは、28 = 256 通りです。
こんなに少ない試行回数では、コンピュータを使えば、すぐに解読されてしまいます。
このビットパターンの数は、
2256 ≒ 1.16 × 1077 通り
になります。これだけ多くの試行回数なら、コンピュータを使っても、そう簡単には解読されません。
したがって、選択肢エが正解です。
正解エ
以上、「ビットパターン」の計算問題の解き方を説明しましたが、十分にご理解いただけましたでしょうか。
もしも、すぐに理解できない問題があったなら、同じ問題を繰り返し練習してください。
基本情報技術者試験では、同じ問題が何度も再利用されているので、できない問題をできるようにすることが、必ず得点アップにつながるからです。
それでは、またお会いしましょう!
label 関連タグ
免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
※独習ゼミは、受験ナビ運営のSEプラスによる試験対策eラーニングです。

一般常識で解ける マネジメント と ストラテジ の計算方法|かんたん計算問題
update
ITエンジニアも知っておくべき 財務会計 の計算方法|かんたん計算問題
update
略語でわかる MIPS の計算方法|かんたん計算問題
update
ビットパターンの計算問題|かんたん計算問題
update
構造と仕組みを知ればできる 磁気ディスク装置 の計算方法|かんたん計算問題
update
音声サンプリングの計算方法がわかる|かんたん計算問題
update
通信ネットワークの計算方法がわかる|かんたん計算問題
update
工数の計算方法がわかる|かんたん計算問題
update
稼働率の計算方法がわかる|かんたん計算問題
update
期待値の計算方法がわかる|かんたん計算問題
update
『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数