注册 登录
编程论坛 闲聊灌水

关于掩码问题

未来大仙 发布于 2015-07-23 19:58, 853 次点击
书上有这样一段,先定义一个值,一般称他为掩码,用于选择需要的位。。  这句话是什么意思? 掩码是什么?personnal_data对应掩码german的位是1,则表达式personal_data&german  为真。。 这个对应掩码是什么怎么回事?怎么对应?  请各位讲详细一些。。。谢谢..
11 回复
#2
TonyDeng2015-07-23 20:15
为什么跑来这里问?要解释怎么用还好,要解释“掩码”到底是什么概念却比较啰嗦。
#3
未来大仙2015-07-23 20:28
回复 2楼 TonyDeng
那请你解释一下怎么用好吗?谢谢。但请详细
#4
TonyDeng2015-07-23 20:31
掩码,是mask,其实就是马赛克,是用于蒙蔽一些部分的。比如我们要看一个8位二进制数10111100的中间4位是不是都是1,就可以构造一个同样是8位的掩码00111100,它的中间正好是4个1,其余的都是0,那么当用10111100 & 00111100的时候,就会得到结果00111100,即得到掩码本身,那么我们就可以说那个数的确是中间4位均为1的(其余的4位是什么不重要,这正是我们构造00111100掩码的目的,我们此时只关心中间4位是否为1或为0)。这是一种判断特定位置是否与掩码部位相符的方法,掩码00111100,就是用0把其余位都遮蔽了,留下中间4个1暴露出来,如果被比较的东西恰好与被暴露的相同,就达到目的了——想象用一个留小孔的纸板遮在一个物体上面看物体有没有与小孔一样布局的东西。

翻译为“掩码”,就是因为这个动作有掩蔽的意思。英文mask也是遮蔽的意思,这种现象你看爱情动作片见得多了。

[ 本帖最后由 TonyDeng 于 2015-7-23 20:40 编辑 ]
#5
未来大仙2015-07-23 20:51
回复 4楼 TonyDeng
哦哦哦哦哦,你这么说我懂了。、。。。谢谢谢谢...
#6
未来大仙2015-07-23 21:02
回复 4楼 TonyDeng
等等。。  掩码是怎么构造的?
#7
TonyDeng2015-07-23 21:48
以下是引用未来大仙在2015-7-23 21:02:20的发言:

等等。。  掩码是怎么构造的?

手写二进制之后翻译为十六进制
#8
未来大仙2015-07-23 22:22
回复 7楼 TonyDeng
我的意思是为什么他可以作为掩码- -
#9
TonyDeng2015-07-23 22:36
一个对象在某种场合下被用作掩码,不是天生有掩码这种东西。
#10
未来大仙2015-07-23 22:42
回复 9楼 TonyDeng
其实我的意思是,需要使用掩码需要某些头文件吗? 需要定义吗? 还是需要调用函数? 还是在按位运算中就会默认他是掩码。。
#11
未来大仙2015-07-23 23:04
回复 9楼 TonyDeng
嗯,现在我懂了。。谢谢
#12
阿鞠尼2015-07-24 08:43
mark
1