说明:
1.首先需理解二进制的概念
2.在10进制,2进制,8进制,16进制能够自由转换
正文:
1.与运算
符号:&
说明:二进制相同位中 两个运算数都为1,结果为1,否则为0
例子:1001 & 1110 = 1000
2.或运算
符号:|
说明:二进制相同位中两个运算数只要有一个为1,结果为1,否则为0
例子: 1001|1110 = 1111
3.非运算
符号:~
说明:单个运算数若为1,结果为0;若为0,结果为1
例子:!1 = 0
4.亦或运算
符号:^
说明:二进制相同位中两个运算数相同为0,不同为1
例子:1001 ^ 1110 = 0111
应用:
1.两个数交换:
目前楼主了解的交换方式有3种:
1.1利用空间
temp = a;
a = b;
b = temp;
这种方式挺不错,没有什么问题,但是需要额外的一个空间。
1.2利用纯数学
a = a + b;
b = a - b;
a = a - b;
这种方式看似巧妙,但存在一些问题,若a为int型变量,a = 2 ^ 32 - 1,b = 8, a + b > 2 ^ 32 - 1,并且编译器有越界检测时,就会产生错误,所以并不安全。
1.3利用二进制
a = a ^ b;
b = a ^ b;
a = a ^ b;
这种方式,无需额外的空间和安全问题。