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.

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

    二、自我总结

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

  • 相关阅读:
    Window—mysql下载及安装
    postgresql 在windows下启动调试功能
    FASTREPORT自动换行及行高自适应
    如何卸载已经安装在delphi7中控件包?
    cxgrid使用三问1cxgrid 如何动态创建列2cxGrid 通过字段名取得列3cxGrid动态创建的列里动态创建事件的方法
    VirtualBox中Linux设置共享文件夹
    Android & iOS 启动画面制作工具(转自龟山Aone)
    PostgreSQL 基本数据类型及常用SQL 函数操作
    win10 安装Postgresql 服务不能启动报错
    TdxDbOrgChart 图标显示问题
  • 原文地址:https://www.cnblogs.com/smqh/p/4238409.html
Copyright © 2011-2022 走看看