• 締切済み

コンピュータの質問です。

コンピュータの問題がわかりません。 問 次の問いのnは数31765を表す   (1) 何ビットあれば、n個の状態を区別できるか。   (2) nを2バイト長の2進法に変換し、さらに16進表記せよ。 いろいろ参考書を見たのですが、   (1) これは参考書と同じ問題がり、15ビットということだけしかわかりませんでした。しかも解説がなくなぜ、15なのかがいまいちよくわかりません。  (2) 31765 = 0111 1100 0001 0101     このようにnを2バイト長の2進法に変換しというところまではできましたが、そのあとの16進表記せよがわかりません。 だれか教えていただけませんか。  よろしくお願いします

みんなの回答

回答No.5

> 追加の問(3) 整数の表現単位を2バイト、負の数は2の補数で表現する > と定める。このとき、-nの表現を16進法表記でよ。 単純にビットを反転したものは1の補数表現です。 2の補数表現は、ビットを反転したものに+1します。 31765 = 0111 1100 0001 0101 -31765 = 1000 0011 1110 1011 となります。 簡単ですが、+1する所以などはこちらのページが分かり易いかと思います。 http://www.jtw.zaq.ne.jp/kayakaya/new/kihon/text/fusu.htm

tkoh
質問者

お礼

naktakさん回答ありがとうございます。

すると、全ての回答が全文表示されます。
回答No.4

> Windows上から電卓を使って、10進数の15を2進数にする方法がわからな > いので、手計算で111 1100 0001 0101と確認させていただきまし > た。普通の電卓なら使えるのですが、2進法でやる方法がわかりません > ので、教えていただけませんか。 電卓を起動し、メニューの表示から、「関数電卓」を選択すれば 基数(n進数)の選択が可能ですよ。 10進数を選択した状態で15と打ち、その後2進数を選択すれば 2進数で10進数の15を表現してくれます。 試験勉強などで頑張っているのなら、自分の計算が間違っていないことを 確認するくらいに留めておいた方がいいです多分w > (1)では始め(111)には、0がなかったのですが、4ビットごとにも > とめるから0を求めたということでいいのでしょうか。 (1)はあくまで何ビットあれば表現できるかという問いですから 先頭の「0」を意識していません。(4ビットや8ビットごとの表現として統一はしていません) (2)では変換を行う為、4ビットごとでの表現に統一しているまでです。

tkoh
質問者

補足

ありがとうございます。 もう1問教えていただきたいのですが、 追加の問(3) 整数の表現単位を2バイト、負の数は2の補数で表現すると定める。このとき、-nの表現を16進法表記でよ。 解答 (2)では、31765 = 0111 1100 0001 0101としたので、これをもとに、       -31765 = 1000 0011 1110 1010となりましたが、これで、いいのでしょうか。教えて下さい。

すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

(1)2の2を2^2と表記します。2^3=2×2×2=8ということ。 2^14(=16384) < 31765 <2^15(=32768) ∴n=15 (2)既にご自身で0111 1100 0001 0101とちゃんと4桁ずつに区切っていらっしゃいますがな。 16進数とは2^4です。2^4=2×2×2×2=16ということ。 16進数は、0~15までを1桁で表せば良い。0~Fです。 2進数で0000~1111です。 16進数と10進数、2進数と10進数の変換は押さえてありますね? 指を立てて2進数の遊びをしたこと、ありませんか? 0111は7、1100はC、0001は1、0101は5 ∴7C15

すると、全ての回答が全文表示されます。
回答No.2

(1) Windows上から電卓を使って、10進数の15を2進数にしてみてください。 結果は111 1100 0001 0101です。 31765(10)を表現するには最低15ビット必要という事になります。 表現できなければ区別はできませんよね。 (2) 0111 1100 0001 0101を、4ビットごとに合計値を求めます。 7   12   1   5 これを16進数表記にします。 7C15 という事ではなくて?

tkoh
質問者

補足

naktakさん回答ありがとうございます。 (1) Windows上から電卓を使って、10進数の15を2進数にする方法がわからないので、手計算で111 1100 0001 0101と確認させていただきました。普通の電卓なら使えるのですが、2進法でやる方法がわかりませんので、教えていただけませんか。 (2) 0111 1100 0001 0101を、4ビットごとに合計値を求めます。 7   12   1   5 (1)では始め(111)には、0がなかったのですが、4ビットごとにもとめるから0を求めたということでいいのでしょうか。

すると、全ての回答が全文表示されます。
  • phoenix343
  • ベストアンサー率15% (296/1946)
回答No.1

1)1ビットだと0~1、2ビットだと0~3、3ビットだと0~7を表せるのは分かるよね? 2)あとは4桁ずつ区切り、0~Fで表せばいいだけですよ。

すると、全ての回答が全文表示されます。

関連するQ&A