社区
C语言
帖子详情
关于C语言中的按位与(&)按位或(|)按位异或(^)取反(~)的疑惑!
chezzz
2012-03-12 04:36:55
大家好!我本身是一个软件测试,现在转到了开发组,学习C语言
在学到C语言中按位运算时候遇到了疑惑,对按位与(&)按位或(|)按位异或(^)取反(~) 这几个不容易理解,
希望各位朋友能帮助我,形象的帮我解释按位运算和按位运算符,谢谢
...全文
12260
10
打赏
收藏
关于C语言中的按位与(&)按位或(|)按位异或(^)取反(~)的疑惑!
大家好!我本身是一个软件测试,现在转到了开发组,学习C语言 在学到C语言中按位运算时候遇到了疑惑,对按位与(&)按位或(|)按位异或(^)取反(~) 这几个不容易理解, 希望各位朋友能帮助我,形象的帮我解释按位运算和按位运算符,谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kuaile948
2012-10-16
打赏
举报
回复
有点不理解
flowingfirefly
2012-03-20
打赏
举报
回复
理解不了哪?
kyle
2012-03-20
打赏
举报
回复
百度一下,全都知道
chezzz
2012-03-20
打赏
举报
回复
谢谢大家!
赵4老师
2012-03-12
打赏
举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……
我才是笨蛋
2012-03-12
打赏
举报
回复
如果学过数电 一切就ok
qixing1115
2012-03-12
打赏
举报
回复
[Quote=引用 1 楼 zjxylc 的回复:]
=== 1. and(&)运算 ===
and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数.
相同位的两个数字都为1,则为1;若有一个不为1,则为0。
00111
11100
(&或者and)
----------------……
[/Quote]
嗯
[Quote=引用 3 楼 kuzuozhou 的回复:]
楼主有兴趣找本数字电路的书看看就知道了。
对按位与(&):100&101==100,1与1为1,0与其他(0,1)与为0
按位或(|):100|101==101,1或其他为1,0或0为0
按位异或(^):就是模二加啦。。不进位的加.。如111 xor 110==001
取反(~):就是把每位0变1,1变0
[/Quote]
这个也不错
pengfoo
2012-03-12
打赏
举报
回复
楼主有兴趣找本数字电路的书看看就知道了。
对按位与(&):100&101==100,1与1为1,0与其他(0,1)与为0
按位或(|):100|101==101,1或其他为1,0或0为0
按位异或(^):就是模二加啦。。不进位的加.。如111 xor 110==001
取反(~):就是把每位0变1,1变0
ProgrammingRing
2012-03-12
打赏
举报
回复
1楼全了……
zjxylc
2012-03-12
打赏
举报
回复
=== 1. and(&)运算 ===
and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数.
相同位的两个数字都为1,则为1;若有一个不为1,则为0。
00111
11100
(&或者and)
----------------
00100
=== 2. or(|)运算 ===
or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。
相同位只要一个为1即为1。
00111
11100
(|或者or)
----------------
11111
=== 3. xor(^)运算 ===
异或的符号是⊕。
xor运算通常用于对二进制的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。
xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。1314520 xor 19880516 = 20665500,我就把20665500告诉MM。MM再次计算20665500 xor 19880516的值,得到1314520,于是她就明白了我的企图。
相同位不同则为1,相同则为0。
00111
11100
(^或者xor)
----------------
11011
4.~取反就是如果是00111,则变为11000
C:关于位操作符:&、|、^、~的一些应用
关于位操作符的应用
编程语言基础知识之位运算与位移动
上面讲了 5 道题,本来想写十道的,发现五道就已经写了好久了,,,,十道的话,怕你们也没耐心写完,而且一道比一道难的那种,,,,。很多时候,位运算是个不错的选择,至少时间效率会快很多,而且高逼格,装逼必备。所以呢,以后可以多尝试去使用位运算哦,以后我会再给大家找些题来讲讲,遇到高逼格的,感觉很不错的,就会拿来供大家学习了。编程语言基础知识1:位运算与移动位运算之与&、位或|、位
异或
^
按位
与
运算符(&)
按位
或
运算符(|)
异或
运算符(^)左移运算符()
【
C语言
学习】16进制与位运算:
C语言
中
的数字魔法,你get到了几个技巧?
通过今天的探讨,相信你对
C语言
中
的十六进制和位运算有了更全面、更深刻的理解。位运算不仅是计算机底层操作的基础,也是许多高级编程技巧的核心。从基本的
按位
与
、或、
异或
、
取反
、左移、右移到实际应用场景
中
的设置和清除位、检查位、位掩码、位交换,再到进阶技巧
中
的颜色表示、位字段和CRC校验,位运算在
C语言
中
扮演着重要的角色。希望你能将今天学到的知识运用到实际开发
中
,让代码变得更加高效、优雅。如果你还有任何疑问或想了解更多关于
C语言
的奥秘,欢迎随时留言交流。编码之路,我们一起前行!🌟。
【
C语言
学习】位逻辑运算符:
C语言
中
的8位魔法,你掌握了几个技巧?
通过今天的探讨,相信你对
C语言
中
的位逻辑运算符有了更全面、更深刻的理解。位逻辑运算符不仅是计算机底层操作的基础,也是许多高级编程技巧的核心。从基本的
按位
与
、或、
异或
、
取反
、左移、右移到实际应用场景
中
的设置和清除位、检查位、位掩码、位交换,再到进阶技巧
中
的位字段、位压缩和CRC校验,位逻辑运算符在
C语言
中
扮演着重要的角色。希望你能将今天学到的知识运用到实际开发
中
,让代码变得更加高效、优雅。如果你还有任何疑问或想了解更多关于
C语言
的奥秘,欢迎随时留言交流。编码之路,我们一起前行!🌟。
【
C语言
学习】8进制与位运算:
C语言
中
的数字魔法,你掌握了几个技巧?
通过今天的探讨,相信你对
C语言
中
的八进制和位运算有了更全面、更深刻的理解。位运算不仅是计算机底层操作的基础,也是许多高级编程技巧的核心。从基本的
按位
与
、或、
异或
、
取反
、左移、右移到实际应用场景
中
的设置和清除位、检查位、位掩码、位交换,再到进阶技巧
中
的文件权限、位字段和CRC校验,位运算在
C语言
中
扮演着重要的角色。希望你能将今天学到的知识运用到实际开发
中
,让代码变得更加高效、优雅。如果你还有任何疑问或想了解更多关于
C语言
的奥秘,欢迎随时留言交流。编码之路,我们一起前行!🌟。
C语言
70,020
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章