c++位运算

如题所述

第1个回答  2025-03-11

C++中的位运算主要包括以下几种:

    按位与

      功能:对两个整数的二进制表示进行逐位与操作,只有当两个相应的位都为1时,结果的位才为1。示例:5 & 3,即0101 & 0011,结果为0001,即1。

    按位或

      功能:对两个整数的二进制表示进行逐位或操作,只要有一个相应的位为1,结果的位就为1。示例:5 | 3,即0101 | 0011,结果为0111,即7。

    按位异或

      功能:对两个整数的二进制表示进行逐位异或操作,当两个相应的位不同时,结果的位为1;相同时,结果的位为0。示例:5 ^ 3,即0101 ^ 0011,结果为0110,即6。

    按位取反

      功能:对一个整数的二进制表示进行逐位取反操作,0变为1,1变为0。示例:~5,即~0101,结果为6。

    左移

      功能:将一个整数的二进制表示向左移动指定的位数,右边空出的位用0填充。每左移1位相当于数值乘以2。示例:5 << 2,即0101 << 2,结果为10100,即20。

    右移

      功能:将一个整数的二进制表示向右移动指定的位数,对于无符号整数,左边空出的位用0填充;对于有符号整数,左端填充0或1取决于系统设置。每右移1位相当于数值除以2。示例:5 >> 2,即0101 >> 2,结果为0001,即1。

注意:位运算符的优先级从高到低为:~ > & > ^ > |。移位运算符<<和>>的优先级低于上述四种位运算符,但高于算术运算符和比较运算符。在进行复杂的位运算时,建议使用括号明确运算顺序。

相似回答
大家正在搜