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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • OutputStreamWriter Writer PrintWriter「建议收藏」

    OutputStreamWriter Writer PrintWriter「建议收藏」OutputStreamWriter是字符流通向字节流的桥梁,可使用指定的charset将要写入流中的字符编码成字节。(即用字符流的方式写字节流)例如:InputStreamReaderisr=newInputStreamReader(newFileInputStream(FileDescriptor.in));  OutputStreamWriterosw=

  • 最小角回归算法定义_有无回归算法

    最小角回归算法定义_有无回归算法最小角回归算法(LeastAngleRegression,LAR)是一种针对于线性回归问题,快速进行特征选择和回归系数计算的迭代算法,其被广泛推广用于求解线性回归以及Lasso回归问题。最小角回归算法的核心思想为:将回归目标向量依次分解为若干组特征向量的线性组合,最终使得与所有特征均线性无关的残差向量最小。可见,最小角回归算法的关键在于选择正确的特征向量分解顺序和分解系数。为了更好的表示最…

  • Java的特点[通俗易懂]

    Java的特点[通俗易懂]Java是一种“简单”、面向对象、分布式、解释型、健壮、安全、体系结构中立、可移植、高性能和动态的编程语言。简单:Java的设计目的是让专业程序员觉得既易学又好用。假设你有编程经历,你将不觉得Java难掌握,如果你已经理解面向对象编程的基本概念,学习Java见更加容易。面向对象:面向对象是现代编程语言的重要特征之一,面向对象技术极大的提高了人们的软件开发能力。分布

  • Elasticsearch日期格式化「建议收藏」

    Elasticsearch日期格式化「建议收藏」参照以下文章进行日期格式化即可,传送门:https://blog.csdn.net/smilepasta035/article/details/79550400

  • origin绘图同时添加柱状图和折线图

    origin绘图同时添加柱状图和折线图在绘制数据图时,为了清晰反应不同数据之间的关系,往往需要在同一个图中同时添加柱状图和点线图。这时候需要左右两个纵坐标。下面介绍这种图的绘制方法1、首先绘制一个柱状图,具体绘制方法可以参考上一篇博客:origin绘图软件安装包及入门使用2在图的右侧插入刻度线,插入顺序如下图所示,点击图–>新图层(轴)–>右Y轴3、添加完后双击右侧刻度线修改刻度的起始值和要插入的点线图数值范围对应4、插入折线图,选择图->添加点线图,从book中选择要绘制点线图的数据导入到右侧

  • 信息系统项目的范围管理论文_高级项目管理师论文

    信息系统项目的范围管理论文_高级项目管理师论文本人参加了2019年上半年信息系统项目管理师考试,目前已经通过。论文我压了2篇,但是都没有压中,考场看到题目差点吐血,还好后面按照自己的思路也顺利过关。这里和大家分享一下我的论文资料,大家可以参考。摘要20xx年x月,我作为项目经理参与了深圳市某上市公司的生产管理系统项目。该项目总投资300万人民币,建设工期为10个月,通过项目的建设,实现了该公司物料管理、库存管理、生产工单、生产计划、生产派…

发表回复

您的电子邮箱地址不会被公开。

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