java語言基礎回顧(一)不同進位制相互轉換的總結
計算機常用進位制的相關介紹:
1,二進位制(計算機技術中廣泛採用的一種數制),八進位制,十進位制,十六進位制
二進位制資料是用“0”和“1”兩個數碼來表示的數。它的基數為2,進位制規則就是“逢二進一”,有別於我們生活當中常用的十進位制。計算機只能處理和識別“0”和“1”符號串組成的程式碼,所以我們可以用開關來表示這兩個數碼,用“開”來表示1,用“關”表示0。
各進位制的表示形式:
二進位制 ,用2個阿拉伯數字:0、1; 以0b(b可以大寫也可以小寫)開頭
八進位制,逢8進1,用8個阿拉伯數字:0、1、2、3、4、5、6、7;以0開頭
十進位制,用10個阿拉伯數字:0到9; 整數預設是十進位制
十六進位制就是逢16進1,但我們只有0~9這10個數字,所以我們用A,B,C,D,E,F
演示:依次輸出不用進製表示100的資料。
- 0b100(二進位制)
- 0100(八進位制)
- 0x100(十六進位制)
2,進位制間的相互轉換
下面總結我自己在進位制轉換的常用方法,僅供參考,畢竟各進位制都可以相互轉換,先轉成哪個進位制在乎於自己的喜愛。 我總結的有以下四大類,每個類別又有兩種情況,一共有8種情況。
1. 十進位制和二進位制之間的相互轉換: 十進位制——>二進位制 方法:8421碼 如圖:一個位元組有八個二進位制位,下面是一個位元組的二進位制位表示 第一行為二進位制位,第二行為對應二進位制位的十進位制表示,通過記住這種表示方法,可以快速地將二進位制資料和十進位制資料進行轉換。 演示: 十進位制的資料129轉換為二進位制資料 步驟: 1將129和比129小的二進位制位表示的十進位制數最大的那一個作差,並在該二進位制位用1表示,接著將餘數和上一個二進位制的低一位表示的十進位制數相減,不足的用0表示二進位制位,以此類推,直到沒有餘數。129 > 128,所以128對應的二進位制位用1表示,而129-128=1,剛好二進位制的最低位是1,則該二進位制位用1表示,沒有了餘數,即完成。
二進位制–>十進位制 與上面的轉換思想相反即可。 例: 0b110 原碼: 00000110 4 2 上面二進位制的兩個1對應的分別是4和2,將他們相加,就是4+2=6。則0b110的十進位制數為6。
2. 二進位制和八進位制,十六進位制的相互轉換
二進位制–>八進位制 一個八進位制數由三個二進位制陣列成(2^3=8),所以,依照這個思想,我們可以以三個二進位制數為一個單位,不足補0,組成一個八進位制數。 例:0b1110 原碼: 001 110 —— —— 1 4+2 (按權展開求和) 1 6 16 (八進位制)
八進位制–>二進位制 和上面的轉換思想相反,一個八進位制數可以表示三個二進位制位,用8421碼依次展開,不足位補0,得到二進位制數,再拼起來。 例:0216 原碼: 2 1 6 2->010 (用8421碼展開,得出對應的二進位制數) 1->001 6->110 得出0216的二進位制表示為10 001 110
二進位制–>十六進位制 一個十六進位制數由四個二進位制陣列成(2^4=16),取四合一。 例:0b100101100 原碼: 0001 0010 1100 0001->1 0010->2 1100->8+4=12=C 得到0b100101100的十六進位制表示為12C
十六進位制–>二進位制 例:0x226 原碼: 2 2 6 2->010 2->010 6->110 得到0x226的二進位制表示為10010110
3.十進位制和八進位制,十六進位制的相互轉換 十進位制–>八進位制,十六進位制 間接法: 先把十進位制轉換為二進位制,再把二進位制轉換為相應的八進位制和十六進位制的數即可。
直接法 除積倒取餘法 八進位制,十六進位制–>十進位制 方法為:把八進位制、十六進位制數按權展開、相加即得十進位制數
還有就是,可以先把八進位制和十六進位制轉換為二進位制,再轉換為十進位制也可以。
4.八進位制和十六進位制的相互轉換
第一種:他們之間的轉換可以先轉成二進位制然後再相互轉換。
第二種:他們之間的轉換可以先轉成十進位制然後再相互轉換。
以上即為本人對進位制轉換的相關複習,如有錯誤,歡迎指出,小生不才,還請大家多多指教。