zoukankan      html  css  js  c++  java
  • 有关异或符号'^'在c++编程中的应用的讲解!!!

    异或门符号'^',在编程中的使用,有的时候能够让你的程序更加精炼简捷,
    尤其在C++的acm程序应用中,可以避免许多麻烦!!!它的几个简单作用
    讲解如下:
    它的简单规则是相同为0,不同为1,例如
    int a=3=011(2进制,在计算机中的存储形式);
    int b=6=110(2进制,在计算机中的存储形式);
    int c=a^b=101=5;
    切忌,在异或门的计算中都是应用的2进制!!
    任何数和0异或都等于它本身;两个相同的数异或后的结果是0;
    1)实现两个数的交换
      a=a^b;   
       b=a^b;//b=a^b^b=a^0=a;   
       a=a^b;//a=a^a^b=0^b=b;
    应用例子如下:
    #include<iostream>
    using namespace std;
    int main()
    {
     int a=3;
     int b=4;
     a=a^b;
     b=a^b;
     a=a^b;
     cout<<a<<' '<<b<<endl;
     return 0;
    }
    2在一排数中找到独一无二的一个数
    例子如下:
    他的思路是;
    只要有相同的数那么他们异或后的结果就是0,最后就剩下0和那个独一无二的数相异或,就等于
    那个独一无二的数了!!哈哈!!例子,如下:
    #include<iostream>
    using namespace std;
    int main()
    {
        int n,i,x,y;
        while(scanf("%d",&n)!=EOF&&n)
        {
               x=0;
               while(n--)
               {
                   cin>>y;
                    x^=y;   
               }       
               printf("%d\n",x);           
        }
        return 0;
    }
    随便输入几个数,找到其中没有和他相同的那个数!!哈!
    3)判断两个数是否相等
    if(a^b==0)
    printf("a=b");
    else
    printf("a!=b");

  • 相关阅读:
    ffmpeg视频操作记录
    frida定义线程写图片文件
    frida创建静态域
    frida创建字符串
    pyppeteer_stealth
    python ast
    最小的js编译器
    excel加双引号和逗号
    JUnit 单元测试方法中启用子线程的问题
    ctrip 开源 DAL 框架相关问题总结
  • 原文地址:https://www.cnblogs.com/xiohao/p/2770920.html
Copyright © 2011-2022 走看看