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)
上一篇 2022年5月3日 上午7:20
下一篇 2022年5月3日 上午7:40


相关推荐

  • JSP简单练习-获取表单数据

    JSP简单练习-获取表单数据

    2022年1月28日
    42
  • swagger2 注解说明 ( @ApiImplicitParams )

    swagger2 注解说明 ( @ApiImplicitParams )Api 用在请求的类上 表示对类的说明 tags 说明该类的作用 可以在 UI 界面上看到的注解 value 该参数没什么意义 在 UI 界面上也看到 所以不需要配置 ApiOperation 用在请求的方法上 说明方法的用途 作用 value 说明方法的用途 作用 notes 方法的备注说明 ApiImplicitP 用在请求的方

    2025年11月27日
    6
  • linux服务器路由添加命令_linux加静态路由命令

    linux服务器路由添加命令_linux加静态路由命令linux系统中添加路由的方法发布时间:2020-06-1711:38:59来源:亿速云阅读:95作者:Leah这篇文章将为大家详细讲解有关linux系统中添加路由的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一:使用route命令添加(临时路由)使用route命令添加的路由在机器重启或者网卡重启后路由就失效了,方法://添加到主机的路由#rou…

    2022年10月4日
    4
  • Zeppelin原理简介

    Zeppelin原理简介sparkZeppelin原理

    2022年8月4日
    10
  • 初识不知曲中意,再听已是曲中人下一句是什么_调用action方法出错

    初识不知曲中意,再听已是曲中人下一句是什么_调用action方法出错动作类是多例的,每次动作访问,动作类都会实例化。所以是线程安全的。在每次动作执行前,核心控制器StrutsPrepareAndExecuteFilter都会创建一个ActionContext和ValueStack对象。且每次动作访问都会创建。这两个对象存储了整个动作访问期间用到的数据。并且把数据绑定到了线程局部变量(ThreadLocal)上了。所以是线程安全的。contextMap使用struts内置标签<s:debug>查看contextMap数据利用ActionCo.

    2025年10月15日
    3
  • VS2008 安装失败(“Web 创作组件”无法)

    VS2008 安装失败(“Web 创作组件”无法)今天安装VS2008时出现了问题,怎么都无法安装成功。于是在网上找答案,还真给找到了。贴出来大家学习一下。VisualStudio2008中文正式版可以从微软网站下载试用了,因为之前用英文版感觉比2005快一些,虽然.NETFramework3.5有点庞大,但还是可以选择开发2.0的项目,因此打算立马安装。试用期为三个月,足够长了,因此安装TeamSystem版本,体验

    2025年9月26日
    8

发表回复

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

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