コンピュータサイエンス
小テスト第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を反転させるだけなので
1101→0010
10進数で2
b 2の補数による表現
2の補数表現は1の補数を行った後に最後尾に1を足すので
1101→0010→0011
10進数で3
c 絶対値に符号を付けた表現(左端ビットが0の場合は正、1の場合は負)
絶対値表現より、左端の数字が符号扱いになっている。
(符号→)1101
符号部分を0に変えるだけなので
1101→0101
10進数で5
以上より、正の数で表したとき大きい順にならべると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倍=22より右に2ビットシフトすればよい。
まず、0.FEDCを16進数から2進数に変換するが
16進数→10進数→2進数と変換しなくても、16進数の各値を2ビット表記して連結させるだけで変換できる。
F→1111、E→1110、D→1101、C→1100より、
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 |
・・・ |
整数部: |
1 |
2×0.375= |
0.75 |
・・・ |
整数部: |
0 |
2×0.75= |
1.5 |
・・・ |
整数部: |
1 |
2×0.5= |
1.0 |
・・・ |
整数部: |
1 |
以上より、整数部を下から表示して1011
よって2進数表記で0.1011となる。
問題6
2進数の1.1011と1.1101を加算した結果を10進数で表したものはどれか。
ア. 3.1、 イ. 3.375、 ウ. 3.5、 エ. 3.8
解説
まず2つの数値を足してから10進数に変換する。
1.1011
+1.1101
=11.1000
整数部11は10進数では3、0.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 |
・・・ |
余り |
0 |
60÷2= |
30 |
・・・ |
余り |
0 |
30÷2= |
15 |
・・・ |
余り |
0 |
15÷2= |
7 |
・・・ |
余り |
1 |
7÷2= |
3 |
・・・ |
余り |
1 |
3÷2= |
1 |
・・・ |
余り |
1 |
より、01111000となる。
1と0の個数は同じ4個ずつなので条件にも当てはまる。
イの127を2進数で表すと
127÷2= |
63 |
・・・ |
余り |
1 |
63÷2= |
31 |
・・・ |
余り |
1 |
31÷2= |
15 |
・・・ |
余り |
1 |
15÷2= |
7 |
・・・ |
余り |
1 |
7÷2= |
3 |
・・・ |
余り |
1 |
3÷2= |
1 |
・・・ |
余り |
1 |
より、01111111となる。
1と0の個数が同じではないので条件から外れる。
ウの170を2進数で表すと
170÷2= |
85 |
・・・ |
余り |
0 |
85÷2= |
42 |
・・・ |
余り |
1 |
42÷2= |
21 |
・・・ |
余り |
0 |
21÷2= |
10 |
・・・ |
余り |
1 |
10÷2= |
5 |
・・・ |
余り |
0 |
5÷2= |
2 |
・・・ |
余り |
1 |
2÷2= |
1 |
・・・ |
余り |
0 |
より、10101010となる。
1と0の個数は同じ4個ずつなので条件にも当てはまる。
エの240を2進数で表すと
240÷2= |
120 |
・・・ |
余り |
0 |
120÷2= |
60 |
・・・ |
余り |
0 |
60÷2= |
30 |
・・・ |
余り |
0 |
30÷2= |
15 |
・・・ |
余り |
0 |
15÷2= |
7 |
・・・ |
余り |
1 |
7÷2= |
3 |
・・・ |
余り |
1 |
3÷2= |
1 |
・・・ |
余り |
1 |
より、11110000となる。
1と0の個数は同じ4個ずつなので条件にも当てはまる。
以上より、最大になるのは240となる。
問題10
基数変換に関する記述のうち、適切なものはどれか
ア. 2進数の有限小数は、10進数にしても必ず有限小数になる。
イ. 8進数の有限小数は、2進数にすると有限小数にならないこともある。
ウ. 8進数の有限小数は、10進数にすると有限小数にならないこともある。
エ. 10進数の有限小数は、8進数にしても必ず有限小数になる。
問題11
問題省略
【設問1】
最終更新:2014年01月22日 01:42