Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C/运算符(按位与、按位或、按位异或)

C/运算符(按位与、按位或、按位异或)

作者头像
用户10788736
发布于 2023-10-16 00:27:04
发布于 2023-10-16 00:27:04
2.1K00
代码可运行
举报
文章被收录于专栏:CSDN搬移文章CSDN搬移文章
运行总次数:0
代码可运行

本文主要介绍C语言中按位与、按位或、按位异或三个操作符的使用。

该三个操作符中的位,代表的是二进制位。

  • 按位与:&

运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)

实例: 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main()
{
	int a = 3 & 5;
	printf("%d  ", a);
	return 0;
}

输出结果:

分析该代码 : 

  1. 3的补码: 0000 0000 0000 0000 0000 0000 0000 0011.
  2. 5的补码: 0000 0000 0000 0000 0000 0000 0000 0101.
  3. 经过按位与的操作,得到的补码为:0000 0000 0000 0000 0000 0000 0000 0001.

故输出结果为1.

  • 按位或:|

运算规则:只有两个数的二进制同时为0,结果才为0,否则为1。(负数按补码形式参加按位或运算)

实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main()
{
	int a = 3 | 5;
	printf("%d  ", a);
	return 0;
}

输出结果:

 分析该代码:

  1. 3的补码:0000 0000 0000 0000 0000 0000 0000 0011.
  2. 5的补码:0000 0000 0000 0000 0000 0000 0000 0101.
  3. 经过按位或的操作,得到的补码为: 0000 0000 0000 0000 0000 0000 0000 0111.

故输出结果为7.

  • 按位异或:^

运算规则:当两个数的二进制相同时,结果为0,否则为1。(负数按补码形式参加按位异或运算)

实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<stdio.h>

int main()
{
	int a = -3 ^ 5;
	printf("%d  ", a);
	return 0;
}

输出结果:

 分析该代码:

  1. -3的补码:1111 1111 1111 1111 1111 1111 1111 1101.
  2. 5的补码:0000 0000 0000 0000 0000 0000 0000 0101.
  3. 经过按位异或得到的补码为:1111 1111 1111 1111 1111 1111 1111 1000

故输出结果为-8.

这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!! 如果有什么疑问或不同的见解,欢迎评论区留言哦。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
按位异或的深入理解[通俗易懂]
int j = 8; p = j << 1; cout<<p<<endl; 在这里,8左移一位就是8*2的结果16 。 移位运算是最有效的计算乘/除乘法的运算之一。   按位与(&)其功能是参与运算的两数各对应的二进制位相与。只有对应的两个二进制位均为1时,结果位才为1,否则为0 。参与运算的数以补码方式出现。 先举一个例子如下:   题目:请实现一个函数,输入一个正数,输出该数二进制表示中1的个数。
全栈程序员站长
2022/09/06
2.2K0
按位异或的深入理解[通俗易懂]
C语言位运算-学习二十六
本文最后更新于2022年02月21日,已超过6天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/03/01
3640
C语言位运算-学习二十六
按位与、或、异或等运算方法
运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;
Java架构师必看
2021/03/22
2.3K0
被忽略的位运算符总结
曾经的我还是太年轻了, 基础不扎实还自以为是, 看到位运算符一节就以为是逻辑运算, 结果跳过没看了, 漏了很多知识. 果然 LeetCode 没白刷呀, 接下来是总结.
Ewdager
2020/07/14
6950
深入理解位运算符及其在JavaScript中的应用
沉浸式趣谈
2024/03/13
1280
深入理解位运算符及其在JavaScript中的应用
【C语言】位操作符详解 - 《开心消消乐》
位操作符用于在位级别上进行操作。C语言提供了一组位操作符,允许你直接操作整数类型的二进制表示。这些操作符可以有效地处理标志、掩码、位字段等低级编程任务。
LuckiBit
2024/12/11
1220
七分钟全面了解位运算
“ 阅读本文大概需要 7 分钟。 ”位运算是我们在编程中常会遇到的操作,但仍然有很多开发者并不了解位运算,这就导致在遇到位运算时会“打退堂鼓”。实际上,位运算并没有那么复杂,只要我们了解其运算基础和运算符的运算规则,就能够掌握位运算的知识。接下来,我们一起学习位运算的相关知识。 程序中的数在计算机内存中都是以二进制的形式存在的,位运算就是直接对整数在内存中对应的二进制位进行操作。注意:本文只讨论整数运算,小数运算不在本文研究之列位运算的基础我们常用的 3, 5 等数字是十进制表示,而位运算的基础是二进制。
崔庆才
2019/07/16
1K0
【C语言】位与移位操作符详解
8进制的数字每⼀位是 0~7 的,0~7的数字,各⾃写成2进制,最多有 3个2进制位 就⾜够了,比如7的二进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算。
大耳朵土土垚
2024/03/13
2120
【C语言】位与移位操作符详解
按位与、按位异或、按位取反「建议收藏」
& 按位与 | 按位或 ^ 按位异或 1. 按位与运算 按位与运算符”&”是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。 按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。 main(){ int a=9,b=5,c; c=a&b; printf(“a=%d/nb=%d/nc=%d/n”,a,b,c); } 2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。 例如:9|5可写算式如下: 00001001|00000101 00001101 (十进制为13)可见9|5=13 main(){ int a=9,b=5,c; c=a|b; printf(“a=%d/nb=%d/nc=%d/n”,a,b,c); } 3. 按位异或运算 按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下: 00001001^00000101 00001100 (十进制为12) main(){ int a=9; a=a^15; printf(“a=%d/n”,a); }
全栈程序员站长
2022/09/06
2.2K0
【C语言】室友看了这操作符,连王者都不准备打 |
注意:数学上的是乘法(x),而在我们编程当中是星号(*)。 运行结果:Arabic numerals = 4
謓泽
2022/12/12
5740
【C语言】室友看了这操作符,连王者都不准备打 |
【C语言基础】:操作符详解(一)
C语言中,操作符分为算术操作符、赋值操作符、逻辑操作符、条件操作符和单目操作符等等。
爱喝兽奶的熊孩子
2024/04/10
5420
【C语言基础】:操作符详解(一)
Python全网最全基础课程笔记(三)——所有运算符+运算符优先级
Python中的运算符优先级决定了在包含多个运算符的表达式中,各个运算符的执行顺序。优先级高的运算符会先于优先级低的运算符执行。以下是Python中所有运算符的优先级列表,按照从高到低的顺序排列。
小白的大数据之旅
2024/11/20
2820
Python全网最全基础课程笔记(三)——所有运算符+运算符优先级
计算机初级选手的成长历程——习题演练(操作符篇)
大家好,很高兴又和大家见面啦!!!经过前面三个篇章的介绍,我相信大家对操作符的知识以及很熟悉了,接下来我们就要开始趁热打铁,来上几道习题练练手,帮助大家巩固这个章节的内容。今天博主给大家带来了3道题目供各位朋友练手,题目如下:
蒙奇D索隆
2023/10/26
2060
计算机初级选手的成长历程——习题演练(操作符篇)
【C语言】位操作符详解
对于以上代码的运算,在下面进行拆分讲解。分别先列出a和b的原码,然后计算得到补码(原码取反+1)
DevKevin
2024/03/19
1450
【C语言】位操作符详解
c语言中位运算符的用法_c语言中位运算符的优先级
程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。运位算包括位逻辑运算和移位运算,位逻辑运算能够方便地设置或屏蔽内存中某个字节的一位或几位,也可以对两个数按位相加等;移位运算可以对内存中某个二进制数左移或右移几位等。
全栈程序员站长
2022/11/10
8160
【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换
同样都是数字1111,不同进制下数字的大小不同,第二行代表的是其各位数字十进制下的大小,将各位数字的十进制大小相加即1111在这个进制下转化为十进制的大小,从图中我们可以看出来进制的定义:从右往左一次用各位上的数字乘以这个进制的n次方(n为从右往左以0为首依次++的数字)
s-little-monster
2024/06/06
1160
【C语言】中的位操作符和移位操作符,原码反码补码以及进制之间的转换
Java中的位运算符,你真的掌握了吗?
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2023/11/17
3690
Java中的位运算符,你真的掌握了吗?
位运算符的操作机制
        位操作是程序操作中对位模式按位或二进制数的一元和二元操作。 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算).
渴望飞翔的猪
2022/07/17
5010
【C位运算&基础+面试题】位运算中阶详解及面试题
❤️山顶的风景很美❤️ 本篇基础:需要你要对正负数的二进制序列的原反补码有所了解。 测试题: 先来一道测试题看看你究竟掌握了没有: 品茗股份有限公司的一道面试题: 不使用第3个变量的情况下,交换2个数的大小。 例如: 交换前:a=3,b=5; 交换后:a=5,b=3; 给你几分钟,如果做不出来的话,就听博主给你娓娓道来。(😇答案在文末) 文章目录 一. 按(二进制)位操作符 1-1.左移操作符<<(乘法) 1-2.右移操作符>>(除法) 1-3.除乘二小技巧 二.(二进
MicroFrank
2023/01/16
3610
C:操作符介绍-学习笔记
本篇文章将为您带来C语言操作符的全面解析,您可以将其视为操作符的百科全书。无论您对哪个操作符的使用有所遗忘,都可以在这里找到所需的知识,让您的编程之路更加顺畅。
LonlyMay
2024/10/21
3130
C:操作符介绍-学习笔记
推荐阅读
相关推荐
按位异或的深入理解[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验