[轉載]晨風�0�5�0�2�0�1�6�6 2014年03月08日 於 愛Java 發表
眾所周知、程序世界計算機中采用的是二進制,一個數字可以用任意進制表示。所以看一個數據值的同時。還要觀察它的進制、以免造成笑話。
此時。進制之間的轉換我也必然需要熟知、做到心中有數。下面就進制轉換為大家提供幾點參考.
分析:
- Java中在聲明數字時默認采用的是十進制,可以在數字前加上符號表示數字采用八進制【前面加0(零)】或者十六進制【前面加上0x(零x)】。
- Java的整型封裝類Integer和Long提供toString(int i,int radix)靜態方法,可以將一個任意進制的整數轉換為其他進制的整數。
- 使用Integer或Long的toBinaryString方法將整數轉換為二進制。
- 使用Integer或Long的toOctalString方法將整數轉換為八進制。
- 使用Integer或Long的toHexString方法將整數轉換為十六進制。
- 使用Integer或Long的toString(int i)方法可以將其他進制的整數轉換為十進制的整數的字符串表示。
1、Java 關鍵代碼舉例
int n1 = 14; //十進制轉成十六進制: Integer.toHexString(n1); //十進制轉成八進制 Integer.toOctalString(n1); //十進制轉成二進制 Integer.toBinaryString(12); //十六進制轉成十進制 Integer.valueOf("FFFF",16).toString(); //十六進制轉成二進制 Integer.toBinaryString(Integer.valueOf("FFFF",16)); //十六進制轉成八進制 Integer.toOctalString(Integer.valueOf("FFFF",16)); //八進制轉成十進制 Integer.valueOf("576",8).toString(); //八進制轉成二進制 Integer.toBinaryString(Integer.valueOf("23",8)); //八進制轉成十六進制 Integer.toHexString(Integer.valueOf("23",8)); //二進制轉十進制 Integer.valueOf("0101",2).toString(); //二進制轉八進制 Integer.toOctalString(Integer.parseInt("0101", 2)); //二進制轉十六進制 Integer.toHexString(Integer.parseInt("0101", 2));
2、Java中二、八、十、十六進制之間的轉換測試
private int i = 2010; @Test public void testInteger() { System.err.println(); System.err.println("原始數據:" + i); // 二進制轉換 System.err.println("==========整型——二進制轉換=========="); System.err.println("二進制:" + Integer.toBinaryString(i)); System.err.println("十進制:" + Integer.parseInt(Integer.toBinaryString(i), 2)); // 八進制轉換 System.err.println("==========整型——八進制轉換=========="); System.err.println("八進制:" + Integer.toOctalString(i)); System.err.println("十進制:" + Integer.parseInt(Integer.toOctalString(i), 8)); // 十六進制轉換 System.err.println("==========整型——十六進進制轉換=========="); System.err.println("十六進制:" + Integer.toHexString(i)); System.err.println("十進制:" + Integer.parseInt(Integer.toHexString(i), 16)); } @Test public void testLong() { System.err.println(); System.err.println("原始數據:" + i); // 二進制轉換 System.err.println("==========長整型——二進制轉換=========="); System.err.println("二進制:" + Long.toBinaryString(i)); System.err.println("十進制:" + Long.parseLong(Long.toBinaryString(i), 2)); // 八進制轉換 System.err.println("==========長整型——八進制轉換=========="); System.err.println("八進制:" + Long.toOctalString(i)); System.err.println("十進制:" + Long.parseLong(Long.toOctalString(i), 8)); // 十六進制轉換 System.err.println("==========長整型——十六進進制轉換=========="); System.err.println("十六進制:" + Long.toHexString(i)); System.err.println("十進制:" + Long.parseLong(Long.toHexString(i), 16)); }
