補(bǔ)碼一位乘法計(jì)算過(guò)程 補(bǔ)碼一位乘法中,部分積為什么采用雙符號(hào)位?
補(bǔ)碼一位乘法中,部分積為什么采用雙符號(hào)位?“雙符號(hào)位補(bǔ)碼”也稱(chēng)為“變形補(bǔ)碼”。兩個(gè)二進(jìn)制位用于表示數(shù)字的符號(hào)位,其余的數(shù)字位與公共補(bǔ)碼相同。用變形補(bǔ)碼進(jìn)行加減運(yùn)算時(shí),可根據(jù)雙符號(hào)位判斷以下四種情況:1
補(bǔ)碼一位乘法中,部分積為什么采用雙符號(hào)位?
“雙符號(hào)位補(bǔ)碼”也稱(chēng)為“變形補(bǔ)碼”。兩個(gè)二進(jìn)制位用于表示數(shù)字的符號(hào)位,其余的數(shù)字位與公共補(bǔ)碼相同。用變形補(bǔ)碼進(jìn)行加減運(yùn)算時(shí),可根據(jù)雙符號(hào)位判斷以下四種情況:11——運(yùn)算結(jié)果為負(fù);00——運(yùn)算結(jié)果為正;10——運(yùn)算結(jié)果向下溢出(負(fù)溢出);01——運(yùn)算結(jié)果向上溢出(正溢出)。
補(bǔ)碼一位乘法中,部分積為什么采用雙符號(hào)位?
補(bǔ)碼的一位乘法是通過(guò)重復(fù)加法和移位運(yùn)算來(lái)實(shí)現(xiàn)的,移位是按照補(bǔ)碼右移的規(guī)則進(jìn)行的。以十進(jìn)制乘法為例,因?yàn)槌朔ㄟ^(guò)程中加法結(jié)果可能大于1,即小數(shù)點(diǎn)前面的第一位是數(shù)值,它占據(jù)了符號(hào)位的位置。此時(shí),符號(hào)位被覆蓋,但問(wèn)題不在這里。問(wèn)題是補(bǔ)碼是一個(gè)算術(shù)移位,而新輸入的位是一個(gè)數(shù)字位,現(xiàn)在不能參與移位,所以產(chǎn)生移位誤差。如果部分積采用雙符號(hào)位,最高位代表真符號(hào),則可以避免移位時(shí)的錯(cuò)誤現(xiàn)象,因?yàn)樵谧顗那闆r下,數(shù)值只覆蓋第二符號(hào)位。此時(shí),第二符號(hào)位被視為參與移位的數(shù)字部分,第一符號(hào)位代表真實(shí)符號(hào)位。
雙符號(hào)位的補(bǔ)碼為01001100、則原碼為多少?
對(duì)于無(wú)符號(hào)數(shù),沒(méi)有源代碼、反代碼和補(bǔ)碼的概念,只有絕對(duì)值。對(duì)于有符號(hào)的數(shù)字,將有使用什么代碼類(lèi)型的問(wèn)題。10000000實(shí)際上是-128的補(bǔ)碼。對(duì)于有符號(hào)的數(shù)字,最高的位是符號(hào)位,0是正數(shù),1是負(fù)數(shù),并且總是相同的。所有代碼類(lèi)型轉(zhuǎn)換只適用于較低的..
1。-128到127個(gè)整數(shù)
2。正數(shù)和負(fù)數(shù)相加,符號(hào)位的進(jìn)位在機(jī)器二進(jìn)制中實(shí)現(xiàn)為溢出刪除。溢減原理的實(shí)質(zhì)是補(bǔ)語(yǔ)的可實(shí)現(xiàn)性。在補(bǔ)碼的機(jī)器實(shí)現(xiàn)中,負(fù)數(shù)是通過(guò)預(yù)先加128得到的。例如,-1表示為1111111:127,表示128+-1。結(jié)果,加上兩個(gè)負(fù)數(shù)就變成了再加上兩個(gè)128,加上負(fù)數(shù)和正數(shù)也會(huì)再加上一個(gè)128。然而,在8位二進(jìn)制系統(tǒng)中,添加任何128都被認(rèn)為是二進(jìn)制溢出。不過(guò),除了溢出的缺點(diǎn)外,其余的優(yōu)點(diǎn)是:即結(jié)果的準(zhǔn)確度在8位范圍內(nèi),通過(guò)在計(jì)算機(jī)中巧妙地取最高位來(lái)實(shí)現(xiàn)正數(shù)和負(fù)數(shù)。
3. 溢出有兩種理解方式:二進(jìn)制溢出和邏輯溢出。二進(jìn)制溢出的原因在于補(bǔ)碼的實(shí)現(xiàn)。如果負(fù)數(shù)位于1的最高位,它將溢出,但是-7+-12沒(méi)有邏輯溢出。邏輯溢出意味著它超出了由特定代碼(如8位補(bǔ)碼)邏輯表示的數(shù)據(jù)范圍,如-128-1。
雙符號(hào)位補(bǔ)碼溢出如何求原碼?
!](1)如果同一符號(hào)的補(bǔ)碼個(gè)數(shù)相加,如果和的符號(hào)與加數(shù)的符號(hào)相反,或者如果相反符號(hào)的補(bǔ)碼個(gè)數(shù)相減,差分符號(hào)與減法符號(hào)相同,屬于運(yùn)算結(jié)果的溢出。這種判別方法比較復(fù)雜,既要區(qū)分兩個(gè)不同運(yùn)算的加減,又要檢查結(jié)果的符號(hào)和其中一個(gè)操作數(shù)的相同差,所以很少使用;
(2)兩個(gè)補(bǔ)碼的加減運(yùn)算時(shí),如果最高值位到符號(hào)位的進(jìn)位值與符號(hào)位到較高位的進(jìn)位值不同,則也是運(yùn)算結(jié)果溢出。
(3)使用雙符號(hào)位(如定點(diǎn)十進(jìn)制的模4補(bǔ)碼)時(shí),如果兩個(gè)符號(hào)位的值不同(01或10),則會(huì)溢出。01表示兩個(gè)正數(shù)相加的結(jié)果大于機(jī)器能表示的最大正數(shù),稱(chēng)為“溢出”;10表示兩個(gè)負(fù)數(shù)相加的結(jié)果小于機(jī)器能表示的最小負(fù)數(shù),稱(chēng)為“下溢”;雙符號(hào)位的高位符號(hào)位,無(wú)論結(jié)果是否溢出,都是運(yùn)算結(jié)果的正確符號(hào)位,在乘法過(guò)程中具有重要的實(shí)際意義。請(qǐng)注意,在使用雙符號(hào)位的方案中,當(dāng)數(shù)據(jù)存儲(chǔ)在寄存器和內(nèi)存中時(shí),只需要存儲(chǔ)一個(gè)符號(hào),雙符號(hào)位僅用于加法器的電路部分。
同樣,這三種不同的說(shuō)法是對(duì)同一事實(shí)的略微不同的表達(dá)。實(shí)現(xiàn)中使用的行可以不同,但問(wèn)題的本質(zhì)是完全相同的。