您好,登錄后才能下訂單哦!
文本關鍵字:二進制、十進制、進制轉換、八進制、十六進制
大家最開始接觸的數字和計算方法都是基于十進制的,那么進制的意思也就是一種計數方法。根據相應的進制規則進行進位,相同的一串數字在不同的進制下也會對應不同的大小,所以在程序中都會對數字的進制有明確的標識。
十進制就是滿10進1,那么每一位上的數字范圍也就只能是0~9,也是默認使用的進制。
二進制就是滿2進1,那么每一位上的數字范圍也就只能是0或1,Java中使用0b開頭。
八進制就是滿8進1,那么每一位上的數字范圍也就只能是0~7,Java中使用0開頭。
十六進制就是滿16進1,對于大于10的數字從字母A開始進行代表,即A代表10,B代表11,F代表15,那么每一位上的數字范圍也就只能是0~F,Java中使用0x開頭。
在最開始接觸編程時總要學習一下和二進制的轉換,因為這是計算機在工作時使用的進制,很多位運算的操作也是在二進制下進行的,所以我們必須要掌握與二進制相關的進制轉換。
將一個其他進制數轉換為十進制數的過程其實就是根據相應的進制來進行換算。在轉換之前我們先來看一下我們最熟悉不過的十進制,比如:1367。看到這個數字我們都會毫不猶豫的說出:一千三百六十七,這是我們習以為常的事情,但是具體的過程是什么呢?
從上面的步驟可以看出,其實一個數字的解讀其實是從右向左進行的,只不過由于我們對于十進制太過了解所以忽略了這個步驟,那么用這個數字感受一下:1237173927,我猜你一定是在從右往左,從個位開始數,到底是多少吧?
那么其他進制的運算規則也是如此,現在我們就來讀幾個二進制數。
恭喜,我們的進制轉換已經完成了。方法就是從右至左,將乘得的結果進行相加。同時,我們注意到,只要末位是0,那么這個數一定可以被2整除,其他進制也有這個規律(就像個位為零的數一定可以被10整除)。
將一個十進制數轉換為一個二進制數的過程其實就是一個不斷算除法和記錄余數的過程,既然是轉換為二進制,那么我們的除數就是2,具體過程如下:
10進制數:37 -> 二進制結果:100101
對于不是很大的數字其實有一種比較快的轉換辦法,但是前提是我們要對2的次方的運算結果比較熟悉,基本上記憶到2的10次方為1024就足夠用了。方法就是我們將一個十進制數直接拆解為幾個2的n次方加和的形式,從最大的數開始。
比如對于37,最大的二進制數是32,接下來是4,然后是1,那么等式就是:37 = 32 + 4 + 1。
所以對應的二進制數的第6個位置,第3個位置,第1個位置上的數字為1(需要錯開一位),其他為0。用這種方法也能夠快速的知道最高位為1的位置,可以很流暢的按照從左至右的順序直接將二進制寫出來,但是對于大的數字就不太適用了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。