新聞中心
進制之間如何轉換
文本關鍵字:二進制、十進制、進制轉換、八進制、十六進制
創(chuàng)新互聯(lián)專注于企業(yè)成都全網營銷推廣、網站重做改版、大寧網站定制設計、自適應品牌網站建設、H5網站設計、商城網站定制開發(fā)、集團公司官網建設、外貿網站制作、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為大寧等各大城市提供網站開發(fā)制作服務。
一、進制
大家最開始接觸的數(shù)字和計算方法都是基于十進制的,那么進制的意思也就是一種計數(shù)方法。根據(jù)相應的進制規(guī)則進行進位,相同的一串數(shù)字在不同的進制下也會對應不同的大小,所以在程序中都會對數(shù)字的進制有明確的標識。
1. 十進制
十進制就是滿10進1,那么每一位上的數(shù)字范圍也就只能是0~9,也是默認使用的進制。
2. 二進制
二進制就是滿2進1,那么每一位上的數(shù)字范圍也就只能是0或1,Java中使用0b開頭。
3. 八進制
八進制就是滿8進1,那么每一位上的數(shù)字范圍也就只能是0~7,Java中使用0開頭。
4. 十六進制
十六進制就是滿16進1,對于大于10的數(shù)字從字母A開始進行代表,即A代表10,B代表11,F(xiàn)代表15,那么每一位上的數(shù)字范圍也就只能是0~F,Java中使用0x開頭。
二、十進制與二進制的轉換
在最開始接觸編程時總要學習一下和二進制的轉換,因為這是計算機在工作時使用的進制,很多位運算的操作也是在二進制下進行的,所以我們必須要掌握與二進制相關的進制轉換。
1. 二進制轉換為十進制
將一個其他進制數(shù)轉換為十進制數(shù)的過程其實就是根據(jù)相應的進制來進行換算。在轉換之前我們先來看一下我們最熟悉不過的十進制,比如:1367??吹竭@個數(shù)字我們都會毫不猶豫的說出:一千三百六十七,這是我們習以為常的事情,但是具體的過程是什么呢?
- 1367 = 7 × 1 + 6 × 10 + 3 × 100 + 1 × 1000
- 1367 = 7 × 10^0 + 6 × 10^1 + 3 × 10^2 + 1 × 10^3
從上面的步驟可以看出,其實一個數(shù)字的解讀其實是從右向左進行的,只不過由于我們對于十進制太過了解所以忽略了這個步驟,那么用這個數(shù)字感受一下:1237173927,我猜你一定是在從右往左,從個位開始數(shù),到底是多少吧?
那么其他進制的運算規(guī)則也是如此,現(xiàn)在我們就來讀幾個二進制數(shù)。
- 101:1 × 2^0 + 0 × 2^1 + 1 × 2^2 = 5
- 10010:0 × 2^0 + 1 × 2^1 + 0 × 2^2 + 0 × 2^3 + 1 × 2^4 = 18
- 1010101:1 × 2^0 + 0 × 2^1 + 1 × 2^2 + 0 × 2^3 + 1 × 2^4 + 0 × 2^5 + 1 × 2^6 = 85
恭喜,我們的進制轉換已經完成了。方法就是從右至左,將乘得的結果進行相加。同時,我們注意到,只要末位是0,那么這個數(shù)一定可以被2整除,其他進制也有這個規(guī)律(就像個位為零的數(shù)一定可以被10整除)。
2. 十進制轉換為二進制
- 常規(guī)方法:
將一個十進制數(shù)轉換為一個二進制數(shù)的過程其實就是一個不斷算除法和記錄余數(shù)的過程,既然是轉換為二進制,那么我們的除數(shù)就是2,具體過程如下:
10進制數(shù):37 -> 二進制結果:100101
- 小數(shù)字快速轉換法:
對于不是很大的數(shù)字其實有一種比較快的轉換辦法,但是前提是我們要對2的次方的運算結果比較熟悉,基本上記憶到2的10次方為1024就足夠用了。方法就是我們將一個十進制數(shù)直接拆解為幾個2的n次方加和的形式,從最大的數(shù)開始。
比如對于37,最大的二進制數(shù)是32,接下來是4,然后是1,那么等式就是:37 = 32 + 4 + 1。
- 32是2的5次方
- 4是2的平方
- 1是2的零次方
所以對應的二進制數(shù)的第6個位置,第3個位置,第1個位置上的數(shù)字為1(需要錯開一位),其他為0。用這種方法也能夠快速的知道最高位為1的位置,可以很流暢的按照從左至右的順序直接將二進制寫出來,但是對于大的數(shù)字就不太適用了。
文章名稱:進制之間如何轉換
轉載來于:http://fisionsoft.com.cn/article/ppdohd.html