電子書籍の厳選無料作品が豊富!

0xFD30

2バイトの16進数表現です。
この表現の符合付整理の値を求めなさいという問題です。

調べてもわからなかったのでどなたか計算式を教えていただきたいです、、!

A 回答 (5件)

「符号付16進数」ということですね。


以下、何進数で表しているかを [16], [2], [10] などで示します。

0xFD30 = FD30[16] = 1111 1101 0011 0000[2]   ①

ということ。

最左端ビットが「1」なので、これは「負数」を表わします。
(「0」なら正数、「1」なら負数)

その絶対値求めるには、①の2進数の「2の補数」を求めます。
つまり

(1) まず、全ての「0」と「1」を逆転させる。
  1111 1101 0011 0000[2]
→ 0000 0010 1100 1111[2]

(2) それに「1」を加える
  0000 0010 1100 1111[2] + 1[2]
 = 0000 0010 1101 0000[2]
 = 02D0[16]
 = 16^2 × 2 + 16 × 13 + 0[10]
 = 720[10]

よって

 FD30[16] = -720[10]

ということです。


(補足説明)「2の補数」

「2の補数」とは、相互に足し合わせると、16ビットの2進数であれば
 1 0000 0000 0000 0000[2]    ②
になる数ということです。
全ビットの「0, 1」を逆転させて「+ 1」すれば、相互に足し合わせれば②になりますよね?

「16ビットのレジスター」上で計算させれば、②の最左端ビット(17ビット目)は桁あふれして消滅しますから、「2の補数」は
「足し合わせると 0 になる数」
どうしということになります。
それはつまり「絶対値が同じで正負が異なる数」ということになります。
その「先頭ビットが 1 のもの」を「負数」として扱うのが「符号付16進数」(「符号付2進数」でも同じ)ということです。
    • good
    • 1

計算間違えたからもう一回



符合付整理ジャ無くて符合付整数だな?

コンピュータハード回路の決まりで、一番左のビットがオンの時はマイナスを表す。回路がその様に出来ている。

FD30=
1111 1101 0011 0000

これに何を足したら、桁溢れして0になってしまうのかを考える。

1111 1101 0011 0000 +
0000 0010 1101 0000 =
0000 0000 0000 0000

0000 0010 1101 0000を足したら0になるんだから、元の数は
マイナス0000 0010 1101 0000=マイナス 0x02D0

02D0を10進に直すと、2×16² + 13×16¹ + 0=720

∴-720
    • good
    • 1

符合付整理ジャ無くて符合付整数だな?



コンピュータハード回路の決まりで、一番左のビットがオンの時はマイナスを表す。回路がその様に出来ている。

FD30=
1111 1101 0011 0000

これに何を足したら、桁溢れして0になってしまうのかを考える。

1111 1101 0011 0000 +
0000 0010 1101 0000 =
0000 0000 0000 0000

0000 0010 1101 0000を足したら0になるんだから、元の数は
マイナス0000 0010 1101 0000=マイナス 0x02D0

02D0を10進に直すと、0×16² + 13×16¹ + 0=208

∴-208
    • good
    • 0

符合付整数?


符号化の方法が指定されてないから、自分で勝手に決めて良いのでは。

0xFD30をビットパターンにして、
1111 1101 0011 0000

正負の符号ビットは最下位ビットなので、これを切り離して、
111 1110 1001 1000 0

符号ビットが0だから正の値で、
7×16^3 + 14×16^2 + 9×16^1 + 8×16^0
=28672 + 3584 + 144 + 8
=+32418
    • good
    • 1

MSBが符号のビットになるだけです。



で、何をどこまで調べて何が分からないのでしょうか。

・・・

面倒なので4ビットで説明してみますね。
10進数 2進数
 -7  1001
 -6  1010
 -5  1011
 -4  1100
 -3  1101
 -2  1110
 -1  1111
  0  0000
  1  0001
  2  0010
  3  0011
  4  0100
  5  0101
  6  0110
  7  0111
この関係は分かりますね。
(分からないのであれば出直してきましょう)

符号ビットとそれに続くビットの関係はこうなる。
10進数 2進数 符号を除いた整数の求め方(←多分これだけ知りたいのでしょ)
 -7  1001   1000-001=0111   7
 -6  1010   1000-010=0110   6
 -5  1011   1000-011=0101   5
 -4  1100   1000-100=0100   4
 -3  1101   1000-101=0011   3
 -2  1110   1000-110=0010   2
 -1  1111   1000-111=0001   1

という事だ。
がんばれ。
    • good
    • 1

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


このQ&Aを見た人がよく見るQ&A