zoukankan      html  css  js  c++  java
  • C语言中位运算异或“∧”的作用

    1.概念

    异或运算符”∧”也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。
    运算     说明
    0^0=0,0^1=1     0异或任何数,其结果=任何数
    1^0=1,1^1=0     1异或任何数,其结果=任何数取反
    x^x=0     任何数异或自己,等于把自己置0
    2.应用

    (1)使特定位翻转

     比如:01111010,想使其低4位翻转,即1变为0,0变为1。可以将它与00001111进行∧运算,即

      这里写图片描述

    结果值的低4位正好是原数低4位的翻转。要使哪几位翻转就将与其∧运算的该几位置为1即可。这是因为原数中值为1的位与1进行∧运算得0,原数中的位值0与1进行∧运算的结果得1。

    (2)实现两个值的交换

    通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a=3,b=4的值,可通过下列语句实现:

    a=a∧b;
    b=b∧a;
    a=a∧b;

    这里写图片描述

    #include <stdio.h>

    void main()
    {
        int a=3,b=4;

         a=a^b;
         printf("first value %d ",a);

         b=b^a;
         printf("second value %d ",b);

         a=a^b;
         printf("third value %d ",a);

    }

    转载自:
    作者:wwt18811707971
    来源:CSDN
    原文:https://blog.csdn.net/wwt18811707971/article/details/78291490
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/-colin/p/10332574.html
Copyright © 2011-2022 走看看