二進制乘法是演算法
① 二進制乘法運算是什麼
二進制乘法計算是電子計算器採用的計算形式。
二進制數乘法過程可仿照十進制數乘法進行。但由於二進制數只有0或1兩種可能的乘數位,導致二進制乘法更為簡單。
二進制數乘法的法則為:
0×0=0
0×1=1×0=0
1×1=1
由低位到高位,用乘數的每一位去乘被乘數,若乘數的某一位為1,則該次部分積為被乘數;若乘數的某一位為0,則該次部分積為0。某次部分積的最低位必須和本位乘數對齊,所有部分積相加的結果則為相乘得到的乘積。
運算:
加法
二進制加法有四種情況: 0+0=0,0+1=1,1+0=1,1+1=10(0 進位為1)。
乘法
二進制乘法有四種情況: 0×0=0,1×0=0,0×1=0,1×1=1。
減法
二進制減法有四種情況:0-0=0,1-0=1,1-1=0,0-1=1。
除法
二進制除法有兩種情況(除數只能為1):0÷1=0,1÷1=1。
② 二進制的計算方法是怎樣的請舉個例子謝謝,
二進制的運算算術運算二進制的加法:0+0=0,0+1=1 ,1+0=1, 1+1=10(向高位進位);即7=111,10=10103=11。
二進制的減法:0-0=0,0-1=1(向高位借位) 1-0=1,1-1=0 (模二加運算或異或運算) ;
二進制的乘法:0 * 0 = 00 * 1 = 0,1 * 0 = 0,1 * 1 = 1 二進制的除法:0÷0 = 0,0÷1 = 0,1÷0 = 0 (無意義),1÷1 = 1 ;
邏輯運算二進制的或運算:遇1得1 二進制的與運算:遇0得0 二進制的非運算:各位取反。
(2)二進制乘法是演算法擴展閱讀:
二進制的轉換:
二進制轉換為其他進制:
1、二進制轉換成十進制:基數乘以權,然後相加,簡化運算時可以把數位數是0的項不寫出來,(因為0乘以其他不為0的數都是0)。小數部分也一樣,但精確度較少。
2、二進制轉換為八進制:採用「三位一並法」(是以小數點為中心向左右兩邊以每三位分組,不足的補上0)這樣就可以輕松的進行轉換。例:將二進制數(11100101.11101011)2轉換成八進制數。 (11100101.11101011)2=(345.353)8
3、二進制轉換為十六進制:採用的是「四位一並法」,整數部分從低位開始,每四位二進制數為一組,最後不足四位的,則在高位加0補足四位為止,也可以不補0。
小數部分從高位開始,每四位二進制數為一組,最後不足四位的,必須在低位加0補足四位,然後用對應的十六進制數來代替,再按順序寫出對應的十六進制數。
③ 二進制數怎麼做乘法
把二進制數中的「0」和「1」全部當成是十進制數中的「0」和「1」即可。根據十進制數中的乘法運算知道,任何數與「0」相乘所得的積均為「0」,這一點同樣適用於二進制數的乘法運算。只有「1」與「1」相乘才等於「1」。乘法運算步驟:
(1)首先是乘數的最低位與被乘數的所有位相乘,因為乘數的最低位為「0」,根據以上原則可以得出,它與被乘數(1110)2的所有位相乘後的結果都為「0」。
(2)再是乘數的倒數第二位與被乘數的所有位相乘,因為乘數的這一位為「1」,根據以上原則可以得出,它與被乘數(1110)2的高三位相乘後的結果都為「1」,而於最低位相乘後的結果為「0」。
(3)再是乘數的倒數第三位與被乘數的所有位相乘,同樣因為乘數的這一位為「1」,處理方法與結果都與上一步的倒數第二位一樣,不再贅述。
(4)最後是乘數的最高位與被乘數的所有位相乘,因為乘數的這一位為「0」,所以與被乘數(1110)2的所有位相乘後的結果都為「0」。
(5)然後再按照前面介紹的二進制數加法原則對以上四步所得的結果按位相加(與十進制數的乘法運算方法一樣),結果得到(1110)2×(0110)2=(1010100)2。
④ 二進制乘法是什麼原理
二進制乘法原理:
就是左移(進位)8次,每次最高位為1則加進去,8位移完就得出乘積了
實際上和我們做10進制的乘法是一樣的,只不過這里的進制是2罷了
比如5×6,轉成二進制就是0101×0110
十進制乘法大家都會做,公式就是
我們他當成十進制101×110來計算下看看
4位乘積=被乘數×千位被+被乘數×百位+被乘數×十位+被乘數×個位
既0101×0110=101×0000+101×100+101×10+101×0
變化下:
4位乘積=被乘數×千位數×1000+被乘數×百位數×100+被乘數×10位數×10+被乘數×個位數
既0101×0110=101×(0×1000)+101×(1×100) +101×(1×10)+101×0
再變化下:
4位乘積=被乘數×千位數×10×10×10+被乘數×百位數×10×10+被乘數×10位數×10+被乘數×個位數
既0101×0110=101×(0×10×10×10)+101×(1×10×10)+101×(1×10)+101×0
=(((101×0)×10)+(101×1))×10+(101×1))×10+101×0
我們可以看到,實際上乘法結果就是被乘數乘以每一位乘以模(10)的N次方的累計和(其實左移位就是進位啦,看得出來嗎?)
而換成2進制的話很簡單,把10讀成二進制2就行了,結果還是:
4位乘積=被乘數×千位數×10×10×10+被乘數×百位數×10×10+被乘數×10位數×10+被乘數×個位數
既0101×0110=101×(0×10×10×10)+101×(1×10×10)+101×(1×10)+101×0
=(((101×0)×2)+(101×1))×2+(101×1))×2+101×0
由於乘2就是移位(進位),把上面的公式中乘2換成左移位就行了
PS:
由於二進制只有0和1,乘2可以用左移一位來實現,也可以「自己加自己」來實現的,很多CPU的左移指令和「自己加自己」一樣
用軟體乘法要耗費很多CPU時間,只要CPU有硬體乘法器,當然是用硬體的啦,哪會快很多的.
⑤ 計算機二進制碼乘法怎麼算阿
二進制乘法有點像
十進制
里的某些乘法運算,如
123*111
我們可以這么算
123*100+123*10+123*1=12300+1230+123=13530+123=13653
二進制乘法:
比如10010*11010
可以這樣算(如10111<<1000代表在10111後面添加3個零)
10010<<10000
=100100000
10010<<
1000
=
10010000
10010<<
10
=
100100
最後相加,得
100100000+10010000+100100
=110110000+100100
=111010100
這就是10010*11010的結果~
計算中,僅使用了加法和補零
⑥ 二進制加減乘除如何算,高手來啊!
二進制遵循以下法則:0+0=0、0+1=1、1+0=1、1+1=0 進位、0-0=0、0-1=1 借位。
代入計算得10000-111=1001。
二進制乘法:(如10111<<1000代表在10111後面添加3個零)
10010<<10000=100100000
10010<<1000=10010000
10010<<10=100100
最後相加,得
100100000+10010000+100100
=110110000+100100
=111010100
(6)二進制乘法是演算法擴展閱讀:
二進制優點
1、數字裝置簡單可靠,所用元件少。
2、只有兩個數碼0和1,因此它的每一位數都可用任何具有兩個不同穩定狀態的元件來表示。
3、基本運算規則簡單,運算操作方便。
二進制缺點
用二進製表示一個數時,位數多。因此實際使用中多採用送入數字系統前用十進制,送入機器後再轉換成二進制數,讓數字系統進行運算,運算結束後再將二進制轉換為十進制供人們閱讀。
二進制和十六進制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個C,C++程序員都能做到看見二進制數,直接就能轉換為十六進制數,反之亦然。
⑦ 二進制乘法運算是什麼
二進制乘法計算是電子計算器採用的計算形式。
二進制數乘法過程可仿照十進制數乘法進行。但由於二進制數只有0或1兩種可能的乘數位,導致二進制乘法更為簡單。
二進制數乘法的法則為:
0×0=0
0×1=1×0=0
1×1=1
由低位到高位,用乘數的每一位去乘被乘數,若乘數的某一位為1,則該次部分積為被乘數;若乘數的某一位為0,則該次部分積為0。某次部分積的最低位必須和本位乘數對齊,所有部分積相加的結果則為相乘得到的乘積。
二進制數的邏輯運算
邏輯「或」運算又稱為邏輯加,可用符號「+」或「∨」來表示。
邏輯「或」運算的規則如下:
0+0=0或0∨0=0
0+1=1或0∨1=1
1+0=1或1∨0=1
1+1=1或1∨1=1
可見,兩個相「或」的邏輯變數中,只要有一個為1,「或」運算的結果就為1。僅當兩個變數都為0時,或運算的結果才為0。計算時,要特別注意和算術運算的加法加以區別。
⑧ 二進制數如何進行乘法運算
1、無符號乘法。
無符號的乘法與加法類似,它的運算方式是比較簡單的,只是也可能產生溢出。對於兩個w位的無符號數來說,它們的乘積范圍在0到(2w-1)2之間,因此可能需要2w位二進制才能表示。
因此由於位數的限制,假設兩個w位的無符號數的真實乘積為pro,根據截斷的規則,則實際得到的乘積為 pro mod 2w。
2、補碼乘法。
與加法運算類似,補碼乘法也是建立在無符號的基礎之上的,因此我們可以很容易的得到,對於兩個w位的補碼數來說,假設它們的真實乘積為pro,
則實際得到的乘積為:
U2Tw(pro mod 2w。
上面的式子有一個假設,就是假設對於w位的兩個補碼數來說,它們的乘積的低w位與無符號數乘積的低w位是一樣的。這意味著計算機可以使用一個指令執行無符號和補碼的乘法運算。
3、乘法運算的優化。
根據小學所學的乘法運算,假設兩個w位的二進制數相乘,則需要進行w次與運算,然後進行w - 1次加法運算才能得到結果。
從此不難看出,乘法運算的時間周期是很長的。因此計算機界的高手們想出了一種方式可以優化乘法運算的效率,就是使用移位和加法來替代乘法。
上述優化的前提是對於一個w位的二進制數來說,它與2k的乘積,等同於這個二進制數左移k位,在低位補k個0。在書中對這一等式進行了證明,過程如下。
這個過程主要應用了無符號編碼的公式。
有了上面的基礎,就可以使用移位和加法對乘法優化了。
對於任意一個整數y,它總能使用二進制序列表示(假設不超過二進制的表示範圍),因此可以將x和y乘積的二進制序列表示為如下形式(此公式在書中沒有展現)。
x * y = x * (yw-12w-1 + ... + y020) = (x << w-1) * yw-1 +....+ (x << 0 ) * y0。
舉個例子,對於x * 17,可以計算x * 16 + x = (x << 4) + x ,這樣算下來的話,只需要一次移位一次加法就可以搞定這個乘法運算。
而對於x * 14,則可以計算 x * 8 + x * 4 + x * 2 = (x << 3) + (x << 2) + (x << 1) ,更快的方式可以這么計算,x * 16 - x * 2 = (x << 4) - (x << 1) 。
這里最後需要提一下的是,加法、減法和移位的速度並不會總快於乘法運算,因此是否要進行上面的優化就取決於二者的速度了。
4、二進制乘法的運算步驟。
二進制數乘法過程可仿照十進制數乘法進行。
但由於二進制數只有0或1兩種可能的乘數位,導致二進制乘法更為簡單。二進制數乘法的法則為:
1、0×0=0。
2、0×1=1×0=0。
3、1×1=1。
例如:1001和1010相乘的過程如下:
某次部分積的最低位必須和本位乘數對齊,所有部分積相加的結果則為相乘得到的乘積。
參考資料來源:網路——二進制乘法
⑨ 二進制數怎麼相乘
二進制數乘法的法則為:
0×0=0
0×1=1×0=0
1×1=1
由低位到高位,用乘數的每一位去乘被乘數,若乘數的某一位為1,則該次部分積為被乘數;若乘數的某一位為0,則該次部分積為0。某次部分積的最低位必須和本位乘數對齊,所有部分積相加的結果則為相乘得到的乘積。
二進制數的邏輯運算
邏輯「或」運算可用符號「+」或「∨」來表示。
邏輯「或」運算的規則如下:
0+0=0或0∨0=0
0+1=1或0∨1=1
1+0=1或1∨0=1
1+1=1或1∨1=1
可見,兩個相「或」的邏輯變數中,只要有一個為1,「或」運算的結果就為1。僅當兩個變數都為0時,或運算的結果才為0。計算時,要特別注意和算術運算的加法加以區別。
⑩ 二進制的加法和乘法運算規則是什麼
二進制乘法和加法都是通過對二進制數的移位來實現的,移位相當於×2,計算機算根據給出的加法式子與乘法式子算要移多少位。
擴展:
1、二進制數據的表示法
二進制數據也是採用位置計數法,其位權是以2為底的冪。例如二進制數據110.11,其權的大小順序為2^2、2^1、2^0、2^-1、2^-2。對於有n位整數,m位小數的二進制數據用加權系數展開式表示,可寫為:
(a(n-1)a(n-2)…a(-m))2=a(n-1)×2^(n-1)+a(n-2)×2^(n-2)+……+a(1)×2^1+a(0)×2^0+a(-1)×2^(-1)+a(-2)×2^(-2)+……+a(-m)×2^(-m)
二進制數據一般可寫為:(a(n-1)a(n-2)…a(1)a(0).a(-1)a(-2)…a(-m))2。
注意:
1.式中aj表示第j位的系數,它為0和1中的某一個數。
2.a(n-1)中的(n-1)為下標,輸入法無法打出所以用括弧括住,避免混淆。
3.2^2表示2的平方,以此類推。
【例1102】將二進制數據111.01寫成加權系數的形式。
解:(111.01)2=(1×2^2)+(1×2^1)+(1×2^0)+(0×2^-1)+(1×2^-2)
二進制和十六進制,八進制一樣,都以二的冪來進位的。
二進制數據的算術運算的基本規律和十進制數的運算十分相似。最常用的是加法運算和乘法運算。
1. 二進制加法
有四種情況: 0+0=0
0+1=1
1+0=1
1+1=10 進位為1
【例1103】求 (1101)2+(1011)2 的和
解:
1 1 0 1
+ 1 0 1 1
-------------------
1 1 0 0 0
2. 二進制乘法
有四種情況: 0×0=0
1×0=0
0×1=0
1×1=1
【例1104】求 (1110)2 乘(101)2 之積
解:
1 1 1 0
× 1 0 1
-----------------------
1 1 1 0
0 0 0 0
1 1 1 0
-------------------------
1 0 0 0 1 1 0
(這些計算就跟十進制的加或者乘法相同,只是進位的數不一樣而已,十進制的是到十才進位這里是到2就進了)
3.二進制減法
0-0=0,1-0=1,1-1=0,10-1=1。
4.二進制除法
0÷1=0,1÷1=1。[1][2]
5.二進制拈加法
拈加法二進制加減乘除外的一種特殊演算法。
拈加法運算與進行加法類似,但不需要做進位。此演算法在博弈論(Game Theory)中被廣泛利用。
十進制數轉換為二進制數、八進制數、十六進制數的方法:
二進制數、八進制數、十六進制數轉換為十進制數的方法:按權展開求和法
1.二進制與十進制間的相互轉換:
(1)二進制轉十進制
方法:「按權展開求和」
例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10
=(8+0+2+1+0+0.25)10
=(11.25)10
規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依獎遞增,而十
分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
注意:不是任何一個十進制小數都能轉換成有限位的二進制數。
(2)十進制轉二進制
· 十進制整數轉二進制數:「除以2取余,逆序排列」(除二取余法)
例: (89)10 =(1011001)2
2 89 ……1
2 44 ……0
2 22 ……0
2 11 ……1
2 5 ……1
2 2 ……0
1
· 十進制小數轉二進制數:「乘以2取整,順序排列」(乘2取整法)
例: (0.625)10= (0.101)2
0.625X2=1.25 ……1
0.25 X2=0.50 ……0
0.50 X2=1.00 ……1
2.八進制與二進制的轉換:
二進制數轉換成八進制數:從小數點開始,整數部分向左、小數部分向右,每3位為一組用一位八進制數的數字表示,不足3位的要用「0」補足3位,就得到一個八進制數。
八進制數轉換成二進制數:把每一個八進制數轉換成3位的二進制數,就得到一個二進制數。
八進制數字與二進制數字對應關系如下:
000 -> 0 100 -> 4
001 -> 1 101 -> 5
010 -> 2 110 -> 6
011 -> 3 111 -> 7
例:將八進制的37.416轉換成二進制數:
3 7 . 4 1 6
011 111 .100 001 110
即:(37.416)8 =(11111.10000111)2
例:將二進制的10110.0011 轉換成八進制:
0 1 0 1 1 0 . 0 0 1 1 0 0
2 6 . 1 4
即:(10110.011)2 = (26.14)8
3.十六進制與二進制的轉換:
二進制數轉換成十六進制數:從小數點開始,整數部分向左、小數部分向右,每4位為一組用一位十六進制數的數字表示,不足4位的要用「0」補足4位,就得到一個十六進制數。
十六進制數轉換成二進制數:把每一個十六進制數轉換成4位的二進制數,就得到一個二進制數。
十六進制數字與二進制數字的對應關系如下:
0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C
0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D
0010 -> 2 0110 -> 6 1010 -> A 1110 -> E
0011 -> 3 0111 -> 7 1011 -> B 1111 -> F
例:將十六進制數5DF.9 轉換成二進制:
5 D F . 9
0101 1101 1111 .1001
即:(5DF.9)16 =(10111011111.1001)2
例:將二進制數1100001.111 轉換成十六進制:
0110 0001 . 1110
6 1 . E
即:(1100001.111)2 =(61.E)16