什麼是二進位制原理,二進位制乘法是什麼原理?

時間 2021-05-11 09:00:06

1樓:匿名使用者

二進位制18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本《易經》中,讀到了八卦的組成結構,驚奇地發現其基本素數(0)(1),即《易經》的陰爻- -和__陽爻,其進位制就是二進位制,並認為這是世界上數學進位制中最先進的。

20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運算模式正是二進位制。它不但證明了萊布尼茲的原理是正確的,同時也證明了〈易經〉數理學是很了不起的。

二進位制數

一、二進位制數的表示法

二進位制是計算技術中廣泛採用的一種數制。二進位制數是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」。

二進位制數也是採用位置計數法,其位權是以2為底的冪。例如二進位制數110.11,其權的大小順序為22、21、20、2-1、2-2。

對於有n位整數,m位小數的二進位制數用加權係數式表示,可寫為:

(n)2=an-1×2n-1+an-2×2n-2+……+a1×21+a0×20+a-1×2-1+a-2×2-2

+……+a-m×2-m=

式中aj表示第j位的係數,它為0和1中的某一個數。

二進位制數一般可寫為:(an-1an-2…a1a0.a-1a-2…a-m)2。

【例1102】將二進位制數111.01寫成加權係數的形式。

解: (111.01)2=1×22+l×21+1×20+1×2-2

二、二進位制數的加法和乘法運算

二進位制數的算術運算的基本規律和十進位制數的運算十分相似。最常用的是加法運算和乘法運算。

1. 二進位制加法

有四種情況: 0+0=0

0+1=1

1+0=1

1+1=0 進位為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樓:

就是小數點後面如果超過5就進一位

二進位制乘法是什麼原理?

3樓:飛喵某

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相乘的過程如下:

由低位到高位,用乘數的每一位去乘被乘數,若乘數的某一位為1,則該次部分積為被乘數;若乘數的某一位為0,則該次部分積為0。

某次部分積的最低位必須和本位乘數對齊,所有部分積相加的結果則為相乘得到的乘積。

4樓:仍宵雨

就是左移(進位)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

再變化下:

既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就行了,結果還是:

既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有硬體乘法器,當然是用硬體的啦,哪會快很多的。

計算機二進位制、八進位制、十進位制、十六進位制的轉換原理是什麼?

什麼是二進位制?二進位制怎麼算,二進位制是什麼意思,怎麼算

兜轉瞬間 二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數,它的基數為2,進位規則是逢二進一。二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是逢二進一,借位規則是借一當二,由18世紀德國數理哲學大師萊布尼茲發現...

數學二進位制什麼意思 11001100 二進位制化十進位制

何度千尋 二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是 逢二進一 借位規則是 借一當二 由18世紀德國數理哲學大師萊布尼茲發現。二進位制化十進位制 一般採用把二進位制數首先寫成加權係數式,然後按十進位制加法規則求和。這種做法稱為 按權相加...

二進位制負數為什麼是正數的卻加,二進位制負數為什麼是正數的取反加1?

歷史的天空 可以使符號位能與有效值部分一起參加運算,從而簡化運算規則。為了使減法運算變成加法運算,並進一步簡化計算機中運算單元的電路設計,所有這些轉換都是在計算機的底層進行的,而我們使用的組合語言 c語言和其他高階語言都使用原始 得到補碼,使負數成為可加的正數。因此,負數的補碼 模組負數的絕對值。計...