mengalikan menandatangani nomor 2 => 2 tanda bit?

O

omara007

Guest
Hi folks

Jika saya tandatangani mengalikan 2 angka, mengatakan setiap dilambangkan sebagai 16-bit 2's melengkapi binary vector.Yang akan dilakukan oleh 32-bit berisi hasil 2 tanda bit atau 1?

 
32-bit hasilnya harus berisi 1 tanda sedikit.
Mencari Atmel aplikasi catatan berikut:
AVR201: Menggunakan AVR Hardware pengganda
Saya kira catatan ini dapat membantu Anda.

 
svicent wrote:

32-bit hasilnya harus berisi 1 tanda sedikit.

Mencari Atmel aplikasi catatan berikut:

AVR201: Menggunakan AVR Hardware pengganda

Saya kira catatan ini dapat membantu Anda.
 
Ya, produk terbesar negatif angka, misalnya -128 *- 128 (0x80 * 0x80) dalam kasus menandatangani 8 * 8.

PS: Unknown diucapkan, 2's melengkapi nomor tanda tidak sedikit, sehingga mereka dapat juga tidak ada dua.Saya mengerti, bahwa jika Anda ingin 16 * 16 menandatangani kalikan hasilnya telah berlebihan bit.Seperti yang dapat anda lihat dari contoh, ia tidak.Tetapi telah hampir.Jika Anda menerapkan saturation logika, Anda dapat menggantikan 0x80 * 0x80 = 0x4000 oleh 0x3FFF.Maka anda dapat mengabaikan satu "tanda" sedikit, masing-masing menjalankan aritmatika kiri regu dari hasilnya.Dengan cara ini, Anda mendapatkan yang benar skala pecahan menandatangani kalikan, seperti dibahas dalam berkata Atmel aplikasi catatan.

 
Ini adalah untuk memberi balasan board / forum yang saya masalah telah dipecahkan dan topik / thread bisa ditutup.

Efektif ada satu kasus di mana perkalian dari 2 tangani nomor (ukuran yang sama) tidak akan menghasilkan 2 tanda bit.Hal ini adalah ketika anda kalikan angka negatif terbesar (yang dapat dinyatakan dalam jumlah bit yang diberikan).Selain hal ini, selalu ada 2 tanda bit dalam hasil pencarian.

 

Welcome to EDABoard.com

Sponsor

Back
Top