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?

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.