tft每日頭條

 > 科技

 > 二進制快速運算

二進制快速運算

科技 更新时间:2024-12-28 19:20:38

二進制快速運算?加減法運算是計算機中最基本的運算,通常選用補碼實現,實現的算法是:,今天小編就來說說關于二進制快速運算?下面更多詳細答案一起來看看吧!

二進制快速運算(二進制數值數據的運算方法)1

二進制快速運算

補碼加法與減法的運算規則

加減法運算是計算機中最基本的運算,通常選用補碼實現,實現的算法是:

[X Y]補= [X]補 [Y]補 MOD 2 (2.6)

[X-Y]補= [X]補 [-Y]補 MOD 2 (2.7)

例如, X = 0.1010, Y = -0.0101,則:

[X]補= 01010, [Y]補= 11011,[-Y]補= 00101 [X]補 [Y]補 MOD 2= 01010 11011 = 100101 ,按2取模後的結果為00101,其真值為 0.0101,符号位與數值位均正确。

[X]補 [-Y]補 MOD 2= 01010 00101 = 01111 ,按2取模後的結果為01111,其真值為 0.1111,符号位與數值位均正确。

在執行補碼加減運算時,僅在其運算結果不超出機器能表示的數值範圍時,運算結果才是正确的,否則就是“溢出”,得到的結果是錯誤的。執行補碼加減法運算一定要檢查溢出,檢查是否溢出有3種思路。

(1)檢查參與運算的數據和結果的符号是否正确。正數加正數結果為負、或者負數加負數結果為正,都是溢出。

(2)為了方便判别溢出,某些機器采用模4補碼(即使用雙符号位),其定義為:

例如,X= 0.1011,[X]補=001011, X=-0.1011,[X]補=110101,每個補碼都使用兩個符号位,而且兩個符号位總是同值。在執行加減法運算時,若結果的兩個符号位相同,為00或11表示結果正确;當符号位為01或10時,表示數值溢出。

(3)數值位産生向符号位的進位,而符号位不産生向更高位的進位,或數值位不産生向符号位的進位,而符号位卻産生向更高位的進位也是溢出。這很容易用數值位的進位輸出與符号位的進位輸出的“異或”操作來判斷。

源碼一位乘法的運算算法

原碼一位乘法是将符号位與數值位分開進行運算,乘積的符号是兩個數符号的異或值,數值是兩個數絕對值(即原碼表示的數值位)的乘積。

例: X=0.1101, Y=0.1011,計算 X × Y

手工計算時,是根據乘數的每一位求部分積,各部分積依次左移一位,最後一次總加求和的辦法得到乘積結果,再用負乘負、正乘正為正,負乘正、正乘負為負的方案來處理符号。到了計算

(1)将部分積的一次總加改為分步累加;  (2)将部分積左移改為部分積右移;  (3)使部分積連同乘數一起右移,以便保存雙倍位數的乘積。  原碼一位乘法的算法是:

(1)用乘數寄存器的最低位選擇求部分積的數據來源:被乘數或0值;相加求得部分積并使其右移一位,乘數也同時右移一位,此時高位部分積的最低位移入乘數寄存器的高位。  (2)用一個特定的寄存器控制相乘次數(決定于數據位的位數)。  (3)用乘數與被乘數符号位的異或值作為乘積的符号。

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved