アプリ版:「スタンプのみでお礼する」機能のリリースについて

N=0101としたとき-Nをバイアス表示で4ビットで表せ、という問題なのですがどのように考えれば良いのかわかりません。答えは0011となるそうなのですが、なぜそのようになるのでしょうか?わかる方がいましたら解説お願いします。

A 回答 (3件)

これで問題文全部ですか?



簡単に解説すると、「NからNを引くと0になる」わけなんで、「Nが0になるような値」を探せば、それが答えになります。
「0100+0011」は「1000」になりますね。
仮に「1000を0とする」と問題文に書かれているならスッキリなんですが、その記述がないですね。
最近は、「1000=0」というのが暗黙のルールなんですかね?

ただ、私の記憶も定かではないので、怪しいもんですけど。
    • good
    • 0

その「バイアス表示」ってなに?

    • good
    • 0

>バイアス表示で4ビットで表せ



「バイアス表示」というのはあまり一般的ではないので、お使いのテキストなり講義のレジュメに「定義」が書いてあると思います。
その定義通りに求めるしかありません。

通常、2進数でよく使うのは「2の補数」という考え方です。
お示しの例でいえば
 0101 + ABCD = 0000
となる「ABCD」が「0101 に対する負数」ということになります。足して「0」になるのだから、「同じ絶対値でマイナスの数」ということです。
これをコンピュータの演算で行うときに、「4ビットしか扱えない」コンピュータでは
 0101 + ABCD = 1 0000
となったときに、「5ビット目の1」はオーバーフロー(桁あふれ)して消えてしまいます。
コンピュータ上では、これを利用して(数学的ではないが、ズルをして)このときの「ABCD」を「0101 に対する負数」にしよう、ということにしています。それが「2の補数」ということです。

作り方は簡単。

(1) もとの数:0101

(2) 0 と 1 をひっくり返す
 → 1010

(3) それに「1」を足す
 → 1011

これが「2の補数」です。
実際に計算してみれば
 0101 + 1011 = 1 0000
になりますね。

(注)上の (1) と (2) を足せば「1111」になるので、それに (3) で「1」を足せば「1 0000」になるという道理です。
もちろん、この表記方法だと、「4ビット」では
・正の数:0000 ~ 0111 (10進数で 0~7)
・負の数:1111 ~ 1000 (10進数で -1~-8)
までしか表わせません。

このようにして、4ビットの2進数で「0101 の負数表示は 1011」とすることはよくありますが、「0011」にするというのは理解できません。
だって、10進数に直せば
 0011[2] = 3[10]
ですよ。
N=0101[2] = 5[10] だとして、その「バイアス表示」とやらで10進数の「3」はどのように表すのでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!