一、unicode
先說一下unicode是什么?
最開始美國人搞出了ASCII這個東西,什么意思呢?
首先一個字節,我們都知道是8個bit位,總共能表示256種狀態,然后我們就把這256種狀態每種狀態都對應一個字符。這種對應關系就是ASCII。ASCII中一共定義了128個字符,例如:00110000,也就是48,對應字符'0'。
對于英語來說,128個字符來編碼是完全足夠的。但是漢字有那么多,256個完全不夠用啊,于是定義Unicode編碼,就是增加大量的字符,一個字符可能對應2個字節或者3個字節。
在Java中,一個字符對應兩個字節,unicode編碼范圍為'\u0000'(0)~'\uffff'(65,535),除去\u,后面的四位都是16進制,也就是說后面四位都是占用4個bit位,總共16個bit位,剛好兩個字節。
二、進制轉換
2.1、十進制轉其他進制
方法 | 功能 |
---|---|
Integer.toBinaryString(int i) | 將十進制轉換成二進制 |
Integer.toOctalString(int i) | 將十進制轉換成八進制 |
Integer.toHexString(int i) | 將十進制轉換成十六進制 |
Integer.toString(int i, int radix) | 將十進制轉換成指定的進制 |
//10進制轉8進制System.out.println(Integer.toOctalString(7));//7System.out.println(Integer.toOctalString(8));//10//10進制轉16進制System.out.println(Integer.toHexString(15));//fSystem.out.println(Integer.toHexString(16));//10//10進制轉其他進制System.out.println(Integer.toString(16, 17));//10進制轉17進制,輸出結果:gSystem.out.println(Integer.toString(17, 17));//10進制轉17進制,輸出結果:10
2.2、其他進制轉十進制
Integer.parseInt(String s, int radix)
將指定進制的字符串轉換成十進制
System.out.println(Integer.parseInt("1111", 2));//二級制“1111”轉換成十進制,輸出15System.out.println(Integer.parseInt("7", 8));//8進制“7”轉換成十進制,輸出7System.out.println(Integer.parseInt("10", 8));//8進制“10”轉換成十進制,輸出8System.out.println(Integer.parseInt("f", 16));//16進制“f”轉換成十進制,輸出15System.out.println(Integer.parseInt("10", 16));//16進制“10”轉換成十進制,輸出16
2.3、8進制和十進制字面表示法
System.out.println(010);//0開頭表示8進制,010表示8進制下的10,所以結果是8System.out.println(0x1f);//0x開頭表示16進制,0x10表示16進制下的1f,所以結果是31
?