(晚上实在是闲的胃疼。。翻了翻代码发现位运算还写的不太好,在这里梳理一下位运算符)
运算符 | 含义 | 说明 | 例子 |
& | 按位与 |
把参与运算的两个数对应的二进制位相与,只有对应的二进制均为1时,结果的对应位才为1,否则为0. |
9&5中9可以写成00001001,5可以写成00000101,9&5的运算结果是00000001.转化为十进制输出结果是1. |
| | 按位或 | 把参与运算的两个数对应的二进制位相或,也就是只要对应的两个二进制位有一个为1时,其结果就为1. |
9|5相当于00001001|00000101,运算结果是00001101.转化为十进制输出结果是13. |
^ | 按位异或 |
把参与运算的两个数对应的二进制位相异或,当对应的二进制位上的数字不相同时结果为1,否则为0. |
9^5相当于00001001^00000101,运算结果是00001100.转化为十进制输出结果是12. |
~ | 取反 | 把运算数的各个二进制位按位求反,各位原来是0的改为1,原来是1的改为0. | ~9相当于~(00001001),运算结果是11110110.转化为十进制输出结果是246. |
<< | 左移 | 把<<左边的运算数的各二进制位向左移若干位,<<右边的数是指定移动的位数,高位丢弃,低位补0. | 3<<4相当于把3=00000011左移4位,运算结果是001100 00.转化为十进制输出结果是48. |
>> | 右移 | 把>>左边的运算数的各二进制位向右移若干位,>>右边的数是指定移动的位数,高位丢弃,低位补0. | 15>>2相当于把15=00001111右移2位,运算结果是0000 0011,转化为十进制输出结果是3. |
发现表格不怎么会用。。以后再练练吧
明天滚去上学。。估计要被三主课老师叫出去殴一顿QAQ
大家晚安。。
时间: 2024-10-25 05:46:45