二進位數轉十進位數的原理是?

二進位數轉十進位時,任何十進位正整數都能寫成sumlimits_{i = 0}^n {a cdot {2^i}} ;(a in { 0,1} )的形式,原理是?

那是否意味著如果有三進位,

所有正整數也都可以寫成sumlimits_{i = 0}^n {a cdot {3^i}} ;(a in { 0,1,2} )?


三進制當然也是存在的。其實理論上對於任何大於一的整數n,都存在所謂的n進制的,原因是Z_+是可以embed到Z/nZ的inverse limit的。不知道lz有沒有學過數論,具體解釋明天用電腦補


1. 進位計數制概念

進位計數制包括數位、基數和位權三個要素.

數位指數碼在一個數中的位置

基數指每個位數上所能使用的數碼的個數

位權是一個固定的值

在某種進位計數制中,每個數位上的數碼所代表的數值的大小,等於這個數位上的數碼乘以位權.

下面這張表格是這些定義的實例及其對比.

2. 整數的短除法轉換及其原理

關於整數內容有一部分引自《什麼是數學》

以十進位數「一百零九」(109 D)為例,我們可以用短除法先求其七進位下的值:

將餘數倒寫可得到所求相應的七進位值.

該算式等價於以下過程

egin{array}{l};;{mkern 1mu} {
m{109}}\{
m{ = 15}} 	imes 7 + 4\ = left( {2 	imes 7 + 1} 
ight) 	imes 7 + 4\ = left[ {left( {0 	imes 7 + 2} 
ight) 	imes 7 + 1} 
ight] 	imes 7 + 4\ = 0 	imes {7^3} + 2 	imes {7^2} + 1 	imes {7^1} + 4 	imes {7^0}end{array}

由此可見,109_{10}=214_7.

仔細觀察過程可以發現,所取餘數中,所對應的位權由先到後遞增. 其實,按照該過程可以推廣證明從以十為基數轉換成以B為基數的一般規則為:

用連續除以以十為基數的整數z,所得的餘數將是在以B為基數的進位中的數碼.

類似地,我們可以按照規則求出十進位數「一百零九」(109 D)其在二進位下的值為1101101 B.

3. 小數的轉換

以0.8125舉例,轉化為小數,即{{16}over{13}}=13	imes2^{-4},同時13_{10}=1101_2,依據基數,將小數點左移四位,得到{left( {{
m{0}}{
m{.8125}}} 
ight)_{10}} = {left( {0.1101} 
ight)_2}.


(11010010)_{2} =1cdot 2^{7}+1cdot 2^{6}+0cdot 2^{5}+1cdot 2^{4}+0cdot 2^{3}+0cdot 2^{2}+1cdot 2^{1}+0cdot 2^{0}=210


推薦閱讀:

把機械系統抽象為程序或數學函數,它是否可以完成所有的初等函數?
預備篇:纖維叢上的聯絡(下)
微積分的歷史(三),起源之萊布尼茲
為什麼有些人整容了也沒很好看?
《數學譯林》還有存續的必要嗎?

TAG:數學 | 計算機 | 數論 | 計算機科學 | 二進位 | 計算機原理 |