【Java基础篇】Unicode、进制转换
一、unicode
先說(shuō)一下unicode是什么?
最開(kāi)始美國(guó)人搞出了ASCII這個(gè)東西,什么意思呢?
首先一個(gè)字節(jié),我們都知道是8個(gè)bit位,總共能表示256種狀態(tài),然后我們就把這256種狀態(tài)每種狀態(tài)都對(duì)應(yīng)一個(gè)字符。這種對(duì)應(yīng)關(guān)系就是ASCII。ASCII中一共定義了128個(gè)字符,例如:00110000,也就是48,對(duì)應(yīng)字符'0'。
對(duì)于英語(yǔ)來(lái)說(shuō),128個(gè)字符來(lái)編碼是完全足夠的。但是漢字有那么多,256個(gè)完全不夠用啊,于是定義Unicode編碼,就是增加大量的字符,一個(gè)字符可能對(duì)應(yīng)2個(gè)字節(jié)或者3個(gè)字節(jié)。
在Java中,一個(gè)字符對(duì)應(yīng)兩個(gè)字節(jié),unicode編碼范圍為'\u0000'(0)~'\uffff'(65,535),除去\u,后面的四位都是16進(jìn)制,也就是說(shuō)后面四位都是占用4個(gè)bit位,總共16個(gè)bit位,剛好兩個(gè)字節(jié)。
二、進(jìn)制轉(zhuǎn)換
2.1、十進(jìn)制轉(zhuǎn)其他進(jìn)制
| Integer.toBinaryString(int i) | 將十進(jìn)制轉(zhuǎn)換成二進(jìn)制 |
| Integer.toOctalString(int i) | 將十進(jìn)制轉(zhuǎn)換成八進(jìn)制 |
| Integer.toHexString(int i) | 將十進(jìn)制轉(zhuǎn)換成十六進(jìn)制 |
| Integer.toString(int i, int radix) | 將十進(jìn)制轉(zhuǎn)換成指定的進(jìn)制 |
2.2、其他進(jìn)制轉(zhuǎn)十進(jìn)制
Integer.parseInt(String s, int radix)
將指定進(jìn)制的字符串轉(zhuǎn)換成十進(jìn)制
System.out.println(Integer.parseInt("1111", 2));//二級(jí)制“1111”轉(zhuǎn)換成十進(jìn)制,輸出15System.out.println(Integer.parseInt("7", 8));//8進(jìn)制“7”轉(zhuǎn)換成十進(jìn)制,輸出7System.out.println(Integer.parseInt("10", 8));//8進(jìn)制“10”轉(zhuǎn)換成十進(jìn)制,輸出8System.out.println(Integer.parseInt("f", 16));//16進(jìn)制“f”轉(zhuǎn)換成十進(jìn)制,輸出15System.out.println(Integer.parseInt("10", 16));//16進(jìn)制“10”轉(zhuǎn)換成十進(jìn)制,輸出162.3、8進(jìn)制和十進(jìn)制字面表示法
System.out.println(010);//0開(kāi)頭表示8進(jìn)制,010表示8進(jìn)制下的10,所以結(jié)果是8System.out.println(0x1f);//0x開(kāi)頭表示16進(jìn)制,0x10表示16進(jìn)制下的1f,所以結(jié)果是31?
總結(jié)
以上是生活随笔為你收集整理的【Java基础篇】Unicode、进制转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 平安普惠还清了还显示还款中
- 下一篇: java jni框架,Java JNI