進製也就是進製,是人們規定的一種進製方法。 對於任何一種進製—x進製,就表示某一位置上的數運算時是逢x進一位。 十進位制是逢十進一,十六進製制是逢十六進一,二進位制就是逢二進一,以此類推,x進製就是逢x進製。二進位制
八進位制十進位制
十六進製制
轉換關係
這麼多進製之間的轉換,看完以後就再也不打算學了!其實根本沒有那麼複雜,上面的轉換關係可以精簡成如下關係:
十轉x
整數部分,對x短除取餘倒序x轉十小數部分,與x相乘取整正序
按權展開求和什麼是權?
例如十進位制數 111,三個「1」放在不同的位置,所代表的意義也不同。從左到右分別為 100,10,1。還可以表示為:1×ok,現在是不是簡單了。到這裡可能有人會有疑問了,你只說了十進位制和其他進製之間的轉換,那其他進製之間的轉換呢?別著急往下看:102,1×
101,1×
100。
這裡面10
x 就叫做權,二進位制則為2x
,八進位制為8x
,以此類推。
我們以二進位制和十六進製制的轉換為例,首先大家看一下上面那個對應關係表,很容易就會發現乙個規律——四位二進位制數剛剛對應一位十六進製制數所表示的範圍(二進位制的0000-1111對應十六進製制的0-f)。ok知道這個規律以後,一切都變得明了了。那麼將9f(h)轉成二進位制就可以分別將9和f轉成四位二進位制數,然後組合起來就好了,如下圖:
那麼9f(h)轉成二進位制數就是10011111,二進位制轉十六進製制就是先講二進位制數四位一組的規則分好組,然後轉成對應的十進位制數(超過十的用a-f表示)。八進位制和二進位制的轉換也是這個規律,只不過對應關係變成了三位二進位制數對應一位八進位制數而已。
ps:八進位制和十六進製制之間不能直接轉換,八進位制需要先轉成二進位制或十進位制,在有對應的二進位制或十進位制轉成十六進製制,反過來也一樣。十進位制轉其他進製的短除法我覺得還是有點麻煩,有沒有更簡單的方法呢?當然有啦,哈哈哈!其實方法很簡單,就三個字——找節點。
節點表二進位制的權
二進位制數
十進位制2
0 112
1 1022
2 10042
3 100082
4 10000162
5 100000322
6 1000000642
7 10000000
1282
8 100000000
2562
9 1000000000
512210
10000000000
1024
這個表有什麼用呢?比如我們要將578轉成二進位制,我們不用短除法,我們看看上面表中與578最相近的數是多少?很容易就找到512,它是 29
對應的二進位制數是1000000000(乙個1後面九個0,2的n次方對應的二進位制數是1後面n個0),578-512=66;再去表中找和66最相近的數,很容易找到了64,它是26
,對應的二進位制數是100000,66-64=2;2對應的二進位制是10。這樣很容易就計算出578對應的二進位制數為1001000010。
十轉八和十轉十六同理,不再贅述了。通過上面的分析,我們知道只要掌握了十進位制和任何一種進製之間的轉換,那麼我們就掌握了所有進製之間的互相轉換了。而且我們還知道下面的規則:
十轉x
整數部分,對x短除取餘倒序x轉十小數部分,與x相乘取整正序
還可以通過找節點的方式進一步簡化
按權展開求和
十分鐘教會你使用CCS定位Html的元素
首先,先介紹一下,大概的格式為 這裡我稱作引數,可能叫法不準確,大概這個意思 標籤名 屬性名 引數 這些都是在定位元素時都會有的,當然這些都是標準引數,有兩個比較特殊的屬性是id和class,這兩個屬性可以分別使用英文符號 和.代替.比如定位乙個有id,name,class name屬性的這些元素的...
五分鐘搞懂內網和外網之間的通訊的原理
cpp軟體架構獅 2018 09 25 15 01 33 對於初學者而已,我們學習的網路程式設計 如tcp,udp程式設計 我們通常都是在區域網內進行通訊測試,有時候我們或者會想,我們現在寫的內網網路資料和外網的網路資料有什麼不同,我們內網的資料是如何走出外網的呢?首先,我們需要了解一下什麼是公有 ...
五分鐘搞懂內網和外網之間的通訊的原理
寫的通熟易懂,特轉過來備忘!原創鏈結找不到了 對於初學者而已,我們學習的網路程式設計 如tcp,udp程式設計 我們通常都是在區域網內進行通訊測試,有時候我們或者會想,我們現在寫的內網網路資料和外網的網路資料有什麼不同,我們內網的資料是如何走出外網的呢?公有 ip 和私有 ip 的區別 首先,我們需...