第2種情報処理技術者試験 |
2000年度 = 平成12年度・春期 |
午前 |
問7 |
10進数の+432をパック10進数で表したときのビットパターンはどれか。ここで、符号は最後の4ビットとし、+は“1100”、-は“1101”で表すものとする。
ア 0000 0001 1011 1100
| イ 0001 1011 0000 1100
|
ウ 0100 0011 0010 1100
| エ 0100 0011 0010 1101
|
ウ
パック10進数では、10進数の各数字を4ビットの2進化10進数=BCD(binary coded decimal)で表し、最後の桁(4ビット)に+あるいは-を示す符号部を加えたものです。全体のビット数が8の倍数となるように、もとの数値のけた数が偶数のときは、先頭4ビットを0で埋めます。
具体例を示します。
符 号
┌──┬──┬──┬──┐ ┌──┬──┐
+174 │ 1 │ 7 │ 4 │ + │ │ + │ - │
├──┼──┼──┼──┤ ├──┼──┤
│0001│0111│0100│1100│ │1100│1101│
└──┴──┴──┴──┘ └──┴──┘
16ビット=2バイト
┌──┬──┬──┬──┐
-28 │ 0 │ 2 │ 8 │ - │
├──┼──┼──┼──┤
│0000│0010│1000│1101│
└──┴──┴──┴──┘
16ビット=2バイト
┌──┬──┬──┬──┬──┬──┐
+6478 │ 0 │ 6 │ 4 │ 7 │ 8 │ + │
├──┼──┼──┼──┼──┼──┤
│0000│0110│0100│0111│1000│1100│
└──┴──┴──┴──┴──┴──┘
24ビット=3バイト
本問で問われているのは+432ですから、次のように表現されることになります。
┌──┬──┬──┬──┐
+432 │ 4 │ 3 │ 2 │ + │
├──┼──┼──┼──┤
│0100│0011│0010│1100│
└──┴──┴──┴──┘
16ビット=2バイト
n桁の10進数をパック10進数で表現すると(n + 2) / 2バイトになります。