一、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