核心知识点
- 整数的取值范围:
- 一些边界值:
Integer.MAX_VALUE
:0x7fffffff
:2147483647
Integer.MIN_VALUE
:0x80000000
:-2147483648
- 二进制及十进制表示、转换
// 5的二进制、十进制、十六进制初始化
int i1 = Integer.valueOf("0101",2);
int i2 = 5;
int i3 = Integer.valueOf("5", 16);
// 十进制转二进制、转十六进制
System.out.println(Integer.toBinaryString(i2));
System.out.println(Integer.toHexString(i2));
- 位运算(Java)
- &、|、!、^、<<、>>、>>>
- 'a'
、- '0'
、- 'A'
的运用- 示例
// 将字母映射为数字
String s1 = "abcdefghijklmn";
int[] ints1 = new int[s1.length()];
for (int i = 0; i < s1.length(); i++) {
int t = s1.charAt(i) - 'a';
ints1[i] = t;
}
i & (i-1)
的作用及使用- 将 i 的二进制表示中的最低位1改为0,即:整数 i 的二进制形式中1的个数比
i & (i-1)
的二进制形式中1的个数多1。
- 将 i 的二进制表示中的最低位1改为0,即:整数 i 的二进制形式中1的个数比
i |
二进制表示 |
i&(i-1) |
1的个数 |
0 |
000 |
- |
0 |
1 |
001 |
000 |
1 |
2 |
010 |
000 |
1 |
3 |
011 |
010 |
2 |
4 |
100 |
000 |
1 |
5 |
101 |
100 |
2 |
6 |
110 |
100 |
1 |
7 |
111 |
110 |
3 |
- 奇数和偶数二进制形式差异
- 偶数 i 和 i/2 的二进制形式中1的个数相同;