コンピュータサイエンス

小テスト第1回目

問題1

8ビットの2進数11010000を右に2ビットシフトしたものを、00010100から減じた値はどれか。
ここで、負の数は2の補数表現によるものとする。
ア. 00001000、 イ. 00011111、 ウ. 00100000、 エ. 11100000
答え、ウ

解説

11010000を右に2ビットシフトするので
追加→1111010000←削除

さらに上記の値を00010100から引くために、負の数にする
(上記の数値から00010100を引くとへのミスリードになるので注意)
00010100
↓1の補数表現(1と0を反転)
11101011
↓2の補数表現(最後尾に1を足す)
11101100

この値が負の数となっているため、00010100を足す
   11101100
00010100
00100000(←と一致)


問題2

負の整数を表現する代表的な方法として、次の3種類がある。
a 1の補数による表現
b 2の補数による表現
c 絶対値に符号を付けた表現(左端ビットが0の場合は正、1の場合は負)
4ビットのパターン1101をa~cの方法で表現したものと解釈したとき、値が小さい順になるように三つの方法を並べたものはどれか。
ア. a,c,b、 イ. b,a,c、 ウ. b,c,a、 エ. c,b,a
答え、エ

解説

問題の1101が負の数扱いとなっているので、それぞれの解釈方法を逆算して正の数で表す。
a 1の補数による表現
1の補数表現では1と0を反転させるだけなので
11010010
10進数で

b 2の補数による表現
2の補数表現は1の補数を行った後に最後尾に1を足すので
110100100011
10進数で

c 絶対値に符号を付けた表現(左端ビットが0の場合は正、1の場合は負)
絶対値表現より、左端の数字が符号扱いになっている。
(符号→)1101
符号部分を0に変えるだけなので
11010101
10進数で

以上より、正の数で表したとき大きい順にならべるとc,b,a
これを負の数として小さい順にならべるので、答えもc,b,aとなる。


問題3

実数aをa=f×reと表す浮動小数表記に関する記述として、適切なものはどれか。
ア. fを仮数、eを指数、rを基数という
イ. fを基数、eを仮数、rを指数という
ウ. fを基数、eを指数、rを仮数という
エ. fを指数、eを基数、rを仮数という
答え、ア


問題4

16進少数0.FEDCを4倍したものはどれか。
ア. 1.FDB8、 イ. 2.FB78、 ウ. 3.FB70、 エ. F.EDC0
答え、ウ

解説

4倍=2より右に2ビットシフトすればよい。

まず、0.FEDCを16進数から2進数に変換するが
16進数→10進数→2進数と変換しなくても、16進数の各値を2ビット表記して連結させるだけで変換できる。
F1111E1110D1101C1100より、
0.1111 1110 1101 1100となる。
ここで右に2ビットシフトすると
11.1111 1011 0111 0000となる。(ここで整数部分は11だからこの時点で解答がだと分かる)
これをまた16進数で表すと
3.FB70となる。


問題5

10進数の0.6875を2進数で表したものはどれか。
ア. 0.1001、 イ. 0.1011、 ウ. 0.1101、 エ. 0.1111
答え、イ

解説

2×0.6875= 1.375 ・・・ 整数部:
2×0.375= 0.75 ・・・ 整数部:
2×0.75= 1.5 ・・・ 整数部:
2×0.5= 1.0 ・・・ 整数部:
以上より、整数部を下から表示して1011
よって2進数表記で0.1011となる。


問題6

2進数の1.10111.1101を加算した結果を10進数で表したものはどれか。
ア. 3.1、 イ. 3.375、 ウ. 3.5、 エ. 3.8
答え、ウ

解説

まず2つの数値を足してから10進数に変換する。
   1.1011
1.1101
11.1000
整数部11は10進数では30.1は10進数で0.5だから答えは3.5となる。


問題7

2の補数で表された負数10101110の絶対値はどれか。
ア. 01010000、 イ. 01010001、 ウ. 01010010、 エ. 01010011
答え、ウ

解説

問題は負数10101110を正数にしたらどれか、ということを聞かれているので、2の補数で正数にする。
10101110
↓1の補数(1と0を反転)
01010001
↓2の補数(最後尾に1を足す)
01010010←答え


問題8

多くのコンピュータが、演算回路を簡単にするために補数を用いている理由はどれか。
ア、 加算を減算で処理できる。
イ、 減算を加算で処理できる。
ウ、 乗算を加算の組合せで処理できる。
エ、 除算を減算の組合せで処理できる。
答え、ア
※この解答は編集者の確認ミスの可能性があります…たぶんやと思います


問題9

1バイトのデータで0のビット数が等しいもののうち、符号なしの2進数整数として見たときに最大となるものを、
10進整数として表したものはどれか。
ア. 120、 イ. 127、 ウ. 170、 エ. 240
答え、エ

解説

問題より、1バイトのデータから8ビット表示、さらに符号なしだから8ビット目も数値扱いである。
アの120を2進数で表すと
120÷2= 60 ・・・ 余り
60÷2= 30 ・・・ 余り
30÷2= 15 ・・・ 余り
15÷2= ・・・ 余り
7÷2= ・・・ 余り
3÷2= ・・・ 余り
より、01111000となる。
1と0の個数は同じ4個ずつなので条件にも当てはまる。

イの127を2進数で表すと
127÷2= 63 ・・・ 余り
63÷2= 31 ・・・ 余り
31÷2= 15 ・・・ 余り
15÷2= ・・・ 余り
7÷2= ・・・ 余り
3÷2= ・・・ 余り
より、01111111となる。
1と0の個数が同じではないので条件から外れる。

ウの170を2進数で表すと
170÷2= 85 ・・・ 余り
85÷2= 42 ・・・ 余り
42÷2= 21 ・・・ 余り
21÷2= 10 ・・・ 余り
10÷2= ・・・ 余り
5÷2= ・・・ 余り
2÷2= ・・・ 余り
より、10101010となる。
1と0の個数は同じ4個ずつなので条件にも当てはまる。

エの240を2進数で表すと
240÷2= 120 ・・・ 余り
120÷2= 60 ・・・ 余り
60÷2= 30 ・・・ 余り
30÷2= 15 ・・・ 余り
15÷2= ・・・ 余り
7÷2= ・・・ 余り
3÷2= ・・・ 余り
より、11110000となる。
1と0の個数は同じ4個ずつなので条件にも当てはまる。

以上より、最大になるのは240となる。


問題10

基数変換に関する記述のうち、適切なものはどれか
ア. 2進数の有限小数は、10進数にしても必ず有限小数になる。
イ. 8進数の有限小数は、2進数にすると有限小数にならないこともある。
ウ. 8進数の有限小数は、10進数にすると有限小数にならないこともある。
エ. 10進数の有限小数は、8進数にしても必ず有限小数になる。
答え、ア


問題11

問題省略
【設問1】
最終更新:2014年01月22日 01:42