(ア)
![]()
を利用する。
![]()
![]()
とおく。
![]()
ここで
![]()
を利用する。
ここで、
と
はどちらか一方のみ真で、もう一方は偽なので
![]()
が真のときは
と
の少なくとも一方は真であり、
![]()
も真である。
![]()
が偽のときはこの式は偽。
だから、
![]()
よって
![]()
(イ)
![]()
により0から127までの整数が表現できる。
2の補数表現にする場合、元の数字の0と1を反転させ、1を足せばよい。
2の補数表現から元の数字に戻すには1引いてから0と1を反転させればいいから
1100011
→1100010
→0011101
となり、-29である。
-12は12を2進数で表すと
0001100
なので
→1110011
→1110100
である。
2進数では、3桁目より上の数はすべて4の倍数である。
下2桁が00になる数が、4×nであり、4の倍数となる。
よってdが正解。
10進数の小数部分を2進数に直す場合、
の足し算となる。
0.1→![]()
0.01→![]()
0.001→![]()
である。
0.25=![]()
4.125=4+![]()
であるので、この2つは誤差なく2進数で表せる。
0.1や8.025は小数部分に
を含むので誤差を生じる。どうしても
の足し算では無限数列となる。
(ウ)
00→A、0→D、1→C、1→CとするとADCC
0→D、00→A、1→C、1→CとするとDACC
0→D、0→D、0→D、1→C、1→CとするとDDDCC
(a)は全ての文字を3ビットで表しており、前から3ビット区切っていけばいいので区別可能。
(b)は、たとえば110は1,10なのか110か分からないため区別不可能。
(c)は、区別可能な代表的なパターンである。1,2ビット目でAかB,C,Dかを区別し、3ビット目でBかC,Dかを区別し、4ビット目でCかDかを区別する。1,2ビット目を見ないと区別できなくて、同じパターンが出現することはないので区別可能。
(d)は1の前に0が何個あるかを数えればいいので区別可能。







コメントを残す