免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3188 | 回复: 10
打印 上一主题 下一主题

问一个bit运算的问题 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-25 14:10 |只看该作者 |倒序浏览
O_RDONLY | O_CREAT | O_EXCL
这样是怎么算的?
难道真的要先知道它们的bit,然后根据它们的bit位来算?有没快捷的办法知道它们的逻辑关系。

论坛徽章:
0
2 [报告]
发表于 2008-01-25 14:16 |只看该作者
就是或运算啊,1|2|4|8之类的。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2008-01-25 14:17 |只看该作者
原帖由 cugb_cat 于 2008-1-25 14:16 发表
就是或运算啊,1|2|4|8之类的。

那还要换成2进制,算一遍啊,多痛苦,再说这些宏对应的数字也不会记住啊。。。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
4 [报告]
发表于 2008-01-25 14:24 |只看该作者
不用算吧?
他们之间的关系是位或,也就是他们三个都应该包含在里面吧?
这里不用计算位了

论坛徽章:
0
5 [报告]
发表于 2008-01-25 14:25 |只看该作者
原帖由 FinalBSD 于 2008-1-25 14:17 发表

那还要换成2进制,算一遍啊,多痛苦,再说这些宏对应的数字也不会记住啊。。。

不用啊,只要记住这些选项是或的关系就行了,用到的时候就或上就可以了,具体这些宏对应的数字不用记的。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
6 [报告]
发表于 2008-01-25 14:28 |只看该作者
举个例子

#define O_RDONLY        00000000
#define O_CREAT                00000100
#define O_EXCL                00000200

00000000|00000100的值是00000100
00000200|00000100的值是咱们就看200|100,或者10|01
他们两个或一下,不就是11了?
这样他就是00|10|11的结果了,所以,他们三个的关系都有

论坛徽章:
0
7 [报告]
发表于 2008-01-25 14:32 |只看该作者
你只要知道它们的使用方法和名字即可, 不需要记住背后的数值, 实现不同, 这些数值是可以变化的.

名字就是方便交流的.

论坛徽章:
0
8 [报告]
发表于 2008-01-25 14:41 |只看该作者
原帖由 T-bagwell 于 2008-1-25 14:28 发表
举个例子

#define O_RDONLY        00000000
#define O_CREAT                00000100
#define O_EXCL                00000200

00000000|00000100的值是00000100
00000200|00000100的值是咱们就看200|100,或者10|01
他们两个或一下,不 ...

困扰了一段时间,基本上懂了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2008-01-25 14:43 |只看该作者
O_RDONLY | O_CREAT | O_EXCL
有点混淆,我一直想他们之间是否有if-then-else的关系

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2008-01-25 15:11 |只看该作者
原帖由 T-bagwell 于 2008-1-25 14:24 发表
不用算吧?
他们之间的关系是位或,也就是他们三个都应该包含在里面吧?
这里不用计算位了

理解了:
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH
这个例子让我想通了。 谢谢各位!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP