学习C 语言的过程中,有时候会看到&, |, ^等符号,之前不是很了解,特意百度了一下,总结这些操作符的具体用法.
A. &有两种含义用途
1. 取地址。单目运算符。用来取一个变量的地址。
比如int *p = &i;
意思是定义了一个整型指针p,指向变量i的地址.这里的&作用是取变量i的地址。
2. 位操作中的与操作运算符。
按位与,双目运算符.计算的时候按位计算,&两边操作数对应位上全为1时,结果的该位值为1。否则该位值为0
比如0x12&0x23 转为二进制为:
B00010010&B00100011,
按位计算结果为B00000010,即结果为0x02。
B. | 是按位或
两边操作数对应位有1即为1,相同位只要一个为1即为1.其实|的作用很容易记,就跟| |类似,两边有一真结果就位为真,不过|是对两边的数对应的位进行判断.
C. ^异或
相同位不同则为1,相同则为0。
00101^11100
结果就是11001
D. ~按位取反运算符
属于单目运算符,按位取反,见名知意,就是对相应地位取反
E. <<左移运算符 >>右移运算符
<<,看箭头就知道这个时左移运算符.二进制数左移一位,后添一个0就相当于该数乘以2.格式为(数1)<<(数2) ,其中(数1)是被操作数,如被减数、被除数等;(数2)是左移位数,如果是1就相当于将(数1)乘2。如8 << 2, 首先将8转化为二进制数,为1000,左移两位,就变成100000.转化成十进制数就是32. >>,格式和上面一样,将数1往右移数2的值,如7>>2,即0111右移两位,变为0001.