Perkalian titik tetap dengan angka negatif

8

Saya bingung tentang masalah sederhana. Katakanlah saya memiliki dua angka 4 bit dalam format Q0.3. Satu bit tanda dan tiga bit fraksional. Jadi saya bisa mewakili1 melalui 0.875.

Katakan sekarang saya ingin melakukan perhitungan ini: 0.25×0.875. Yang mana:

223×723

Yang berarti saya mengalikan 1110 (2) oleh 0111 (7). Tentu saja jawabannya0.21875 atau 0.25 menggunakan nomor Q0.3 terdekat.

Ayo lakukan kerja.

1110×0111=01100010

yang bila dilihat sebagai nomor Q0.6 adalah 1.100010, yang mana 0.46875oleh buku-buku saya. Kenapa ini salah? Saya mengharapkan jawaban1.110010 (0.21875).

Apa yang telah saya lakukan salah?

benjwy
sumber

Jawaban:

10

Ketika mengalikan angka komplemen dua, Anda harus melakukan ekstensi tanda ke operan untuk memenuhi jumlah digit yang akan dihasilkan oleh multiplikasi Anda, yaitu, dalam kasus Anda 4+4=8 digit.

111111102×000001112=111100102

Seperti ada 23 bit pecahan, hasilnya adalah 1.1100102=1426=0.21875. Menormalkan nomor ini ke3 bit fraksional dalam format Q0.3 menghasilkan 1.1102=0.25.

Robin Klose
sumber