c语言中按位异或运算,^按位异或运算符「建议收藏」

c语言中按位异或运算,^按位异或运算符「建议收藏」^表示按位异或运算符,顾名思义,相异,即不同则为1,反之为0例如15和16进行异或运算,运算过程如下:15000000000000000000000000000011111600000000000000000000000000010000^——————————————000000000000…

大家好,又见面了,我是你们的朋友全栈君。

^表示按位异或运算符,顾名思义,相异,即不同则为1,反之为0

例如15和16进行异或运算,运算过程如下:15 0000 0000  0000 0000  0000 0000  0000 1111

16 0000 0000  0000 0000  0000 0000  0001 0000

^ ——————————————

0000 0000  0000 0000  0000 0000  0001 1111

可以看到,经过按位异或运算后,其结果变成十进制应为31,大家务必弄清楚运算过程,然后再上机验证,代码如下:#include

int main()

{

int a;

a=15^16;

printf(“a=%d\n”,a);

return 0;

}

运算结果为:a=31

异或运算符的作用指定位数的翻转

如想对某个数字的低4位进行翻转,则可以将这个数字与15(二进制为00001111)进行按位异或运算,既可以将原数字的低四位进行翻转,即高四位不变,低四位0变1,1变0

与0异或还是原值

大家可以自行实验,一个数字与0进行异或,结果还是原值

交换两个数字

除了之前我们学习交换两个数字需要第三个变量做中介之外,如今可以通过异或运算进行,代码如下:#include

int swap(int *a,int *b)

{

if (*a!=*b)

{

*a=*a^*b;

*b=*b^*a;

*a=*a^*b;

}

return 0;

}

int main()

{

int a=5;

int b=5;

swap(&a,&b);

printf(“a=%d b=%d\n”,a,b);

return 0;

}

可以看到原先a为3,b为5,运行后得出:a=5 b=5

请大家阅读代码理解并上机试验

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134782.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 利用模板导出文件(一)之XLSTransformer导出excel文件

    利用模板导出文件(一)之XLSTransformer导出excel文件由于现在好多公司都在实行办公无纸化操作,所以一般都是使用excel以及word来办公,本文是公司项目中使用excel文件模板生成对应的文件:首先,需要导入一下几个包:接下来就是具体的代码:importjava.io.File;importjava.io.IOException;importjava.util.ArrayList;importjava.util.Has

    2022年7月24日
    6
  • Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 – HA方式 (2台服务器)

    Alex 的 Hadoop 菜鸟教程: 第4课 Hadoop 安装教程 – HA方式 (2台服务器)具体的讲解一下如何将hadoop安装成HA模式

    2022年6月4日
    24
  • php开发工程师面试题知识点总结(四)–高级篇「建议收藏」

    php开发工程师面试题知识点总结(四)–高级篇

    2022年2月12日
    33
  • html里制作简单导航栏

    html里制作简单导航栏今天简单的做了一下网页里的导航栏。效果如下:代码: 实验3 ul{/*设置导航栏的框框*/ margin:30pxauto;/*框框整体的位置,30px是指离网页的顶部和下部的距离,auto控制的是左右距离为自动调节*/ width:600px;/*框框的宽度*/ height:350px;/*框框的长度*/ pad

    2022年5月28日
    48
  • Matlab GUI上位机界面实现串口通信

    Matlab GUI上位机界面实现串口通信MatlabGUI因项目需求,不得不学的又杂又浅,趁着还没彻底忘记,写下来一些关键注意点。命令行窗口输入guide→BlankGUI→确定根据自己的需求,拖动选择对应的工具,如下图所示双击每一个对象,就可以弹出其检查器,修改其属性,字体大小、粗细、位置等,其中最关键的是两个,一是String,二是Tag,String是用来修改对象中的文字,Tag是所调用的代码名,这个要好的…

    2022年5月15日
    47
  • acwing吧_并查集时间复杂度

    acwing吧_并查集时间复杂度小 A 和小 B 在玩一个游戏。首先,小 A 写了一个由 0 和 1 组成的序列 S,长度为 N。然后,小 B 向小 A 提出了 M 个问题。在每个问题中,小 B 指定两个数 l 和 r,小 A 回答 S[l∼r] 中有奇数个 1 还是偶数个 1。机智的小 B 发现小 A 有可能在撒谎。例如,小 A 曾经回答过 S[1∼3] 中有奇数个 1,S[4∼6] 中有偶数个 1,现在又回答 S[1∼6] 中有偶数个 1,显然这是自相矛盾的。请你帮助小 B 检查这 M 个答案,并指出在至少多少个回答之后可

    2022年8月9日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号