zoukankan      html  css  js  c++  java
  • C语言--位运算符

    一、位运算符

    1.按位与:&

     1> 功能

     * 只有对应的两个二进制位为1时,结果位才为1,否则为0

     * 举例:10用二进制表示为1010,  7用二进制表示为0111。对两个数值进行&运算

     *  1010

         0111

    --------------------

         0010   

     * 规律:二进制中,与1相&保持原位,与0相&就为0

    2> 应用:使用&运算符,判断一个整数变量的奇偶性

    1 int main()
    2 {
    3     int a = 10;
    4     a&1 ? printf("%d为奇数", a) : printf("%d为偶数", a);
    5     return 0; 
    6 }
    利用&判断变量奇偶性

    2.按位或:|

     1> 功能

     * 只要对应的两个二进制位中有一个为1,结果就为1,否则为0

     2> 应用

     * 10用二进制表示为1010,  7用二进制表示为0111。对两个数值进行|运算

     *  1010

         0111

    --------------------

         1111  

    3.按位异或:^

     1> 功能

     * 当对应的二进制位相异时,结果为1,否则为0

     * 举例:10用二进制表示为1010,  7用二进制表示为111。对两个数值进行^运算

     *  1010

         0111

    --------------------

        1101   

     2> 应用: 使用位异或运算符,实现两个变量值的互换

     1 int main()
     2 {
     3          /*该种用法基于三个规律。
     4          1.相同数值进行异或运算,结果为0。
     5          2.任何数值与0异或运算,结果还是原来数值。
     6          3.交换规律:a^b^c=a^c^b */
     7     int a = 10;
     8     int b = 11;
     9     a = a ^ b;//a = 10^11
    10     b = a ^ b;//b=10^11^11=10
    11     a = a ^ b;//a=10^11^10=11
    12         printf("a=%d,b=%d", a, b);
    13 }  
    交换数值

    4.按位取反:~

     1> 功能

     * 按位取反,就是对数值的每个二进制位进行取反操作,0取反变1,1取反变0

     2> 应用

     * 举例:10用二进制表示为1010,对1010进行~操作

     *  1010

    --------------------

         0101 

    5.左移<<  、右移>>

     1> 功能

     * a<<n就是将a的各个二进制位向左移动n位,高位丢弃,地位用0补充,左移n位,其实就是乘以2的n次方;a>>n就是将a的各个二进制位向右移动n位,保持符号位不变,右移n位,其实就是除以2的n次方

     2> 应用

     *举例:10用二进制表示为1010,对1010进行左移1位操作,结果是10100也就是20;对1010进行右移1位操作,结果是101也就是5.

     *注意:以后对变量进行乘法或除法时,运用左移或右移可以提高性能

    二、自我总结

      按位运算符是直接对二进制位进行操作,通过按位运算符我们可以很容易的做到很多事情,如判断变量数值的性,不引入第三变量的前提下交换两个变量的值,以及对变量进行乘除操作等,并且可以提高性能,方便易用。

  • 相关阅读:
    Centos7 GRE Tunnel
    centos 7 增加永久静态路由
    ceph bluestore与 filestore 数据存放的区别
    swift对象存储安装
    [WebRTC] Audio Codec Encoder 基类注解
    [WebRTC] 源码中的Audio Codec整理
    [Math] Maple函数用法
    [Server] Nginx Https配置 及 Firefox提示“此页面使用较弱加密”
    [Windows] 导出所有设置过的Group Policy
    [Tool] WebDav 安装及使用
  • 原文地址:https://www.cnblogs.com/smqh/p/4238409.html
Copyright © 2011-2022 走看看