不同進製間的相互轉換的理解

2021-07-11 13:31:43 字數 1767 閱讀 5512

不同進製間的相互轉換一般有兩種方法,第一種是直接先確定最高位,然後逐步確定低位的數字;第二種便是先確定最低位然後在然後逐步確定到最高位下面便是對這兩種方法的具體解析

本文以二進位制和十進位制的相互轉換來說明具體道理

(1)同乙個數字,放在不同的數字上,代表不同大小的數。例如:十進位制中,百位上的1表示100,十位上的1表示10.。

(2)十進位制之中,每個數都可以被拆開:123=1×100+2×10+3×1                  9876=9×1000+8×100+7×10+6×1。

(3)先問個問題:為啥相應的數字是1000、100、10、1?為啥不是4、3、2、1?答:滿十進一,再滿十再進一,因此要想進到第三位,得有10×10;第4位得有10×10×10

(4)這樣我們就知道了,對10進製,從低位到高位,依次要乘以10^0(10的0次方,下同),10^1,10^2,10^3…

這個也就是書本上給的公式

(5)把十 進製換成 二 進製,也(3)就是把10換成2

那麼我們得到:對2進製,從低位到高位,依次要乘以2^0,2^1,2^2,2^3……也就是1、2、4、8、……

因此原來十進位制咱們叫 十位、百位、千位……現在二進位制其實是 二位、四位、八位……

比較小的數,直接通過拆分就可以轉換回去

比如13,我們數一數,1、2、4、8、16……,不能包含16了,那就只能包含8。 13-8=5,5當中有4,5-4=1

好啦,我們知道13=8+4+1接著把她對應回相應位置去,8是從低往高數的第4位,4是從低往高數的第3位,1是從低往高數的第1位,於是13等於二進位制數1101

不過以上的計算僅僅是對於二進位制有效,因為對於二進位制來說每一位只有0或1,所以可以直接相減一次,而對於像8進製,16進製制等數,它的位置上有大於1的數字,俱不可以這樣比較滅個位置比較一次就可以的

先假設每乙個位置為該進製的最低數值,例如不同的是從0開始的,但是也不排除有些進製可以規定為從1開始,從低位開始不斷的比較,從0開始權重就不斷的乘0,從1開始權重就不斷的乘以1,同時不斷將給定的數值每乙個對應位置的值,直到到達有乙個位置上的時候,數字已經小於開始的最低數乘以該位置上的權重的時候,就結束,這樣就可以確定位數

然後就開始確定每乙個位置上對應的確切的值是多少了,也就是每一位最多用多少這樣的數,用進行/來確定該位置上的值,然後進行%運算來確定剩餘的值,用它和下一位不斷的做比較以上的比較就可以確定出某個位置上的值(那麼會不會計算到最低位之後還有數字剩餘的情況?不可能因為位數已經確定)

這種轉換的方式,適用於各種進製的轉換,例如進製的開始位不是0而是從1開始的轉換,因為下面介紹的短除的方法,只是適用於從0開始的進製位的轉換,因為模除都是要從0開始(貌似也可以,因為可以%的結果加對伊的其實位置的值 ,其實是不可以的,因為這樣只是每一位的數值變了,但是其對應關係任然是對應在為普通進製的從0開始的關係,並沒有產生新的關係,例如數3,假如偽二進位制從1開始,那麼模除的得到的數為21,而實際上為3)

例如數123可以表示為10=1×2^3+0×2^2+1×10^1+0*10^0的形式,所以最低位可以通過%2來得到,所以因為其他位都可以被2來整除

這時減去這個%出來的數,也就是/得到的數,這時這個數為5,這個數相當於》了1位,這是再去迴圈上面的過程,就可以求出對應的數值來

將乙個數%對應的進製,這時得到的結果就為最低位的數因為其他位上的數都可以被整除

這個時候/的其實就是減去%的結果的值在錯對應該進製位的結果(其實上述的》1為對應的是二進位制數而言的特殊結果),結果已經除了乙個對應的進製數,所以這個時候再需要除以一次就好了,而不是除以兩次,而其他位上的數都可以被整除,所以同樣可以得到倒數第二位上的值

以此類推就可以得到所有位上的值

不同進製大數之間的相互轉換

本文參考sjf0115 大數的進製轉換 根據之前所講的大數取餘演算法,我們可以再進一步寫乙個不同進製的大數相互轉化的演算法。我們約定大數用字元陣列的形式儲存。比如我們把十進位制數443轉換為三進製數,1.用被除數第一位的數對3取餘的第一位的餘數1,除以3得到商的第一位 2.用上一步得到的餘數乘以10...

js 不同進製之間相互轉換

如果a進製與b進製都不等於10,則十進位製作為橋梁進行轉換 例如10進製的數字11 轉換為3進製為102 10進製的數字11 轉換為4進製為23 現在進行3進製轉4進製 1 3進製轉10進製 2 10進製轉4進製 在js裡。我們可以借助 parseint 跟 numberobject.tostrin...

不同進製間的轉換

1 其他進製到十進位制 係數 就是每乙個位上的數值 基數 x進製的基數就是x 權 對每乙個位上的資料,從右,並且從0開始編號,對應的編號就是該資料的權。結果 係數 基數 權次冪之和。2 十進位製到其他進製 除基取餘,直到商為0,餘數反轉。3 進製轉換的快速轉換法 a 十進位制和二進位制間的轉換 84...