zoukankan      html  css  js  c++  java
  • 关于C语言中的位运算符的学习即应用

    一.运算符的种类和运算规则:

       &      与:全1则1,有0则0
       |       或:有1则1,全0则0
       ^   异或:相同为0,不同为1
       ~   取反:~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
       << 左移:用来将一个数的各二进制位全部左移N位,右补0
       >> 右移:将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

    二.各种位运算符的应用:

    1.  & 运算

        a.清零运算 

            若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合以下条件:

               原来的数中为1的位,新数中相应位为0。然后使二者进行&运算,即可达到清零目的。

        b.取一个数中某些指定位

             取一个数的哪几位就用一个相应位置为1的数与该数按位相与

    2. | 或运算

             按位或运算常用来对一个数据的某些位定值为1

    3. ^ 异或运算

          a.使特定位置翻转

               与特定位置为1的数进行异或运算

          b.0^x=x

          c.不使用临时变量,交换两个数的值

             a=a^b;

             b=b^a;

             a=a^b;

    4.~ 取反运算

            一元运算符,用于求整数的二进制反码,即分别将操作数各二进制位上的数取反

    5.左移运算符

             左移<<:高位丢弃,低位补0

    6.右移运算符

             右移>>:正数:低位丢弃,高位补0

                          负数:低位丢弃,高位补1

  • 相关阅读:
    深入理解C++右值引用
    并发编程的原子性和顺序性
    LLVM简介
    APK及相关的Android路径
    UE4资源移动与跨项目迁移
    OpenGL简介
    IDEA无限试用插件
    使用idea搭建springcloud
    .NET Core 微服务架构 Steeltoe 使用(基于 Spring Cloud)
    微服务:注册中心ZooKeeper、Eureka、Consul 、Nacos对比
  • 原文地址:https://www.cnblogs.com/wbtcookie/p/4474537.html
Copyright © 2011-2022 走看看