在編程中,有時候會用到進制數來作為操作數據,所以下面就講下它們的概念以及它們之間的轉換。
進制也就是進制位,對于接觸過電腦的人來說應該都不陌生,我們常用的進制包括:二進制、八進制、十進制與十六進制,它們之間區别在于數運算時是逢幾進一位。比如二進制是逢2進一位,十進制也就是我們常用的0-9是逢10進一位。
它們的關系如下,都是可以相互轉換的。
二進制:二進制,Binary,是計算技術中廣泛采用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”。
計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。
八進制:八進制,Octal,縮寫OCT或O,一種以8為基數的計數法,采用0,1,2,3,4,5,6,7八個數字,逢八進1。一些編程語言中常常以數字0開始表明該數字是八進制。
十進制:十進制,Decimal,就是日常生活中用的最多的,如:1,2,3,……100,200,300……。十進制基于位進制和十進位兩條原則,即所有的數字都用10個基本的符号表示,滿十進一,同時同一個符号在不同位置上所表示的數值不同,符号的位置非常重要。基本符号是0到9十個數字。
十六進制:十六進制(英文名稱:Hexadecimal),是計算機中數據的一種表示方法。同我們日常生活中的表示法不一樣。它由0-9,A-F組成,字母不區分大小寫。與10進制的對應關系是:0-9對應0-9;A-F對應10-15;N進制的數可以用0~(N-1)的數表示,超過9的用字母A-F。
以下圖片,就是它們之間的關系了:
下面就來看看它們之間的轉換關系:
十進制轉二進制
方法為:十進制數除2取餘法,即十進制數除2,餘數為權位上的數,得到的商值繼續除2,依此步驟繼續向下運算直到商為0為止。
例如:把十進制數 150 轉換為 二進制數:如下:
二進制轉十進制
方法為:把二進制數按權展開、相加即得十進制數。
二進制轉八進制
方法為:3位二進制數按權展開相加得到1位八進制數。(注意事項,3位二進制轉成八進制是從右到左開始轉換,不足時補0)。
八進制轉成二進制
方法為:八進制數通過除2取餘法,得到二進制數,對每個八進制為3個二進制,不足時在最左邊補零。
二進制轉十六進制
方法為:與二進制轉八進制方法近似,八進制是取三合一,十六進制是取四合一。(注意事項,4位二進制轉成十六進制是從右到左開始轉換,不足時補0)。
十六進制轉二進制
方法為:十六進制數通過除2取餘法,得到二進制數,對每個十六進制為4個二進制,不足時在最左邊補零。
方法1:除8取餘法,即每次将整數部分除以8,餘數為該位權上的數,而商繼續除以8,餘數又為上一個位權上的數,這個步驟一直持續下去,直到商為0為止,最後讀數時候,從最後一個餘數起,一直到最前面的一個餘數。
例:将十進制的(796)D轉換為八進制的步驟如下:
1. 将商796除以8,商99餘數為4;
2. 将商99除以8,商12餘數為3;
3. 将商12除以8,商1餘數為4;
4. 将商1除以8,商0餘數為1;
5. 讀數,因為最後一位是經過多次除以8才得到的,因此它是最高位,讀數字從最後的餘數向前讀,1434,即(796)D=(1434)O
方法2:使用間接法,先将十進制轉換成二進制,然後将二進制又轉換成八進制;
十進制轉八進制或者十六進制有兩種方法
第一:間接法—把十進制轉成二進制,然後再由二進制轉成八進制或者十六進制。這裡不再做圖片用法解釋。
第二:直接法—把十進制轉八進制或者十六進制按照除8或者16取餘,直到商為0為止。
八進制或者十六進制轉成十進制
方法為:把八進制、十六進制數按權展開、相加即得十進制數。
八進制 >十六進制
方法:将八進制轉換為二進制,然後再将二進制轉換為十六進制,小數點位置不變。
例:将八進制的(327)O轉換為十六進制的步驟如下:
1. 3 = 011;
2. 2 = 010;
3. 7 = 111;
4. 0111 = 7;
5. 1101 = D;
6. 讀數,讀數從高位到低位,D7,即(327)O=(D7)H。
十六進制 >八進制
方法:将十六進制轉換為二進制,然後再将二進制轉換為八進制,小數點位置不變。
例:将十六進制的(D7)H轉換為八進制的步驟如下:
1. 7 = 0111;
2. D = 1101;
3. 0111 = 7;
4. 010 = 2;
5. 011 = 3;
6. 讀數,讀數從高位到低位,327,即(D7)H=(327)O。
好吧,進制數的講解就講到這裡了,謝謝大家的浏覽與關注,有什麼錯誤的地方歡迎大家批評指正,謝謝!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!