Java编程基础-扩展

1. 转义符-反斜杠 (\)

反斜杠\用来转义一些特殊字符,作用是用来转义紧随其后的一个字符。转移后的字符通常用于表示一个不可见的字符或具有特殊含义的字符。例如:

  • \n 表示换行,换到下一行的开头
  • \t 表示制表符,类似文档中tab键的作用
  • \" 表示双引号,java代码中使用双引号表示字符串的开始和结束,包含在字符串中的双引号需要用转义符转义。如:String str = "Hello, \"World\"!";
  • \' 表示单引号,java代码中使用单引号表示字符,包含在字符中的单引号需要用转义符转义。如:char c = '\'';
  • \\ 表示反斜杠
  • \b 表示退格,类似键盘上的backspace键
  • \r 表示回车,会将光标定位到当前行的开头,不会跳转到下一行

2. 整型常量进制间的转换

2.1 十进制转二进制

十进制转换成二进制就是一个除以2的过程。把要转换的数,除以2,得到的商和余数,将商继续除以2,直到商为0。最后将所有余数倒序排列。

例如:

  1. 十进制数5转换成二进制为:
5 / 2 = 2 余 1
2 / 2 = 1 余 0
1 / 2 = 0 余 1

所以5的二进制为101。
  1. 十进制数10转换成二进制为:
10 / 2 = 5 余 0
5 / 2 = 2 余 1
2 / 2 = 1 余 0
1 / 2 = 0 余 1

10的二进制为1010。

2.2 十进制转八进制

十进制转换成八进制就是一个除以8的过程。把要转换的数,除以8,得到的商和余数,将商继续除以8,直到商为0。最后将所有余数倒序排列。

例如:

  1. 十进制数5转换成八进制为:
5 / 8 = 0 余 5

5的八进制为5。
  1. 十进制数10转换成八进制为:
10 / 8 = 1 余 2
1 / 8 = 0 余 1

10的八进制为12。

2.3 十进制转十六进制

十进制转换成十六进制就是一个除以16的过程。把要转换的数,除以16,得到的商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列。

  1. 十进制数5转换成十六进制为:
5 / 16 = 0 余 5

5的十六进制为5。
  1. 十进制数10转换成十六进制为:
10 / 16 = 0 余 10

10的十六进制为A。
  1. 十进制数15转换成十六进制为:
15 / 16 = 0 余 15

15的十六进制为F。
  1. 十进制数255转换成十六进制为:
255 / 16 = 15 余 15
15 / 16 = 0 余 15

255的十六进制为FF。

2.4 二进制转十进制

二进制转换成十进制要从右到左用二进制位上的每个数去乘以2的相应次方,然后相加。

例如:

  1. 二进制数101转换成十进制为:
1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 4 + 0 + 1 = 5
  1. 二进制数1010转换成十进制为:
1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 8 + 0 + 2 + 0 = 10

2.5 二进制转八进制

二进制转八进制,需要从右到左,每三位分为一段,不足三位左侧补0,然后将二进制每段的三位数转为八进制的一位。

表2-二进制和八进制数值对应表
二进制 八进制 二进制 八进制 二进制 八进制
000 0 011 3 110 6
001 1 100 4 111 7
010 2 101 5

例如:

  1. 二进制数11011010转换成八进制为:
11 011 010  
由于11不足三位,所以左侧补0,得到:
011 011 010
计算每一位的八进制值:
2+1 2+1 2
所以最终的八进制数为 0332(八进制必须以0开头)
  1. 二进制数10101010转换成八进制为:
10 101 010
由于10不足三位,所以左侧补0,得到:
010 101 010
计算每一位的八进制值:
2 4+1 2
所以最终的八进制数为 0252(八进制必须以0开头)

2.6 二进制转十六进制

二进制转十六进制,需要从右到左,每四位分为一段,不足四位左侧补0,然后将二进制每段的四位数转为十六进制的一位。

表2.1-二进制和十六进制数值对应表
二进制 十六进制 二进制 十六进制 二进制 十六进制 二进制 十六进制
0000 0 0100 4 1000 8 1100 C
0001 1 0101 5 1001 9 1101 D
0010 2 0110 6 1010 A 1110 E
0011 3 0111 7 1011 B 1111 F

例如:

  1. 二进制数1101101010110111转换成十六进制为:
1101 1010 1011 0111
计算每一位的十六进制值:
8+4+1 8+2 8+2+1 4+2+1
13    10  11    5
d     a   b     5
所以最终的十六进制数为 0xDAB5(十六进制必须以0x或0X开头)
  1. 二进制数10101010101010转换成十六进制为:
10 1010 1010 1010
由于1010101010101010不足四位,所以左侧补0,得到:
0010 1010 1010 1010
计算每一位的十六进制值:
2  8+2 8+2 8+2
2  10  10  10
2  a   a   a
所以最终的十六进制数为 0x2aaa(十六进制必须以0x或0X开头)