`

C/C++中的位运算

阅读更多

    C/C++提供了六个位运算操作符,可以对整数进行位运算,下面分别来介绍这六种位运算符。

    (1)按位与&

    将两个操作数的每一个二进制位进行逻辑与运算。

    例如:3&5

    3:00000011

    5:00000101

  3&5:00000001

    按位与操作有以下两个特别的用处:将某个操作数的若干位置0;取操作数的若干指定位。

1: char a = a & 0xfe; //将char类型变量a的最低位置0
2: char c;int n;c=n&0xff //将int类型变量n的低8位赋给char类型变量c
(2)按位或| 将两个操作数的每一个二进制位进行逻辑或运算。 例如:

    3:00000011

    5:00000101

  3|5:00000111

    按位或可以将操作数的某些指定位置1。

1: int a; a = a | 0xff;//将int a的低8位置1

    (3)按位异或^

    将两个操作数的每一个二进制位进行逻辑异或运算。运算规则:对应位相同,异或结果为0;对应位不同,异或结果为1。

    例如:

    3:00000011

    5:00000101

  3^5:00000110

    异或的特殊功能:某位与0异或,结果与原数值相同;某位与1异或,结果与原数值相反。

    举例:要使00001111低四位反转,只需将其与0xf异或

    00001010

    00001111

   ^00000101

    (4)按位取反~

    对操作数的每个二进制位取反。这个就不细说啦大笑

    (5)左移位<<;

    按照运算符右侧操作数指定的位数将左侧操作数二进制值向左移动。低位补0,高位舍弃。

    (6)右移位>>;

    按照运算符右侧操作数指定的位数将左侧操作数二进制值向右移动。低位舍弃;无符号数高位补0,有符号数高位要么补0,要么补符号位。

    掌握位运算一方面要牢记概念,另一方面需要注意各种位运算的特点。

0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics