本文共 1465 字,大约阅读时间需要 4 分钟。
以下代码用于判断一个数是单数还是双数:
if(num & 1 == 0) { // 双数 } else { // 单数 }
这段代码通过检查二进制最后一个位是否为0,快速确定数的奇偶性。 &
5 in binary is 101, 6 is 110, so 5 & 6 = 101 & 110 = 100 (4) in decimal.
1 & 1 = 1, 1 & 0 = 0, 0 & 0 = 0.
|
5 | 6 = 101 | 110 = 111 (7) in binary.
0 | 0 = 0, 1 | 0 = 1, 0 | 1 = 1.
^
true ^ true = false, false ^ false = false, true ^ false = true.
5 (101) ^ 6 (110) = 011 (3) in binary.
~
~1 = 0, ~0 = 1, ~true = false.
<<
1 << 2 = 4 (100 in binary), 5 << 3 = 40 (101000 in binary).
>>
8 >> 3 = 1 (因为1000 >> 3 = 1, 1000 >> 3 in unsigned shift is 8 >> 3 = 1).
要注意有符号移位和无符号移位的区别,通常默认为有符号移位。
&&
4 > 1 && 3 > 0 → true && true → true
1 > 4 && 7 > 2 → false && ... → false
||
2 > 3 || 3 > 2 → false || ... → false
5 > 3 || 2 > 4 → true || ... → true
!
!true → false, !false → true
!true && !false → false && true → false
^
true ^ true → false, false ^ false → false, true ^ false → true
通过上述总结,我对自己之前的知识点掌握情况有了更清晰的认识。写出来的内容虽然比之前更有条理,但其实学得的知识还是分散的。这种整理的过程让我意识到,知识体系的重要性acıне了。如果没有主线把握,很多东西都会很快遗忘。这也是为什么我会觉得,记录下具体案例是理解知识点的最好方式。
转载地址:http://dirrz.baihongyu.com/