&= ~和|=各是什么意思的含义
2013-06-20 14:19
246 查看
&在C语言中可能表示两种运算符。
如果运算对象只有一个,且为右操作数,那么&为取地址运算符,结果为操作对象的地址。例如&a(假设a是一个左值,即具有具体的可访问的地址)结果为a的地址。
如果运算对象有两个,那么&表示位与运算。结果中的每一个二进制位等于两个运算数的对应位置的二进制位按位与。每一个位的位与运算法则是,当且仅当运算数都为1时结果为1,即:1 & 1 == 1,1 & 0 == 0 & 1 == 0 & 0 == 0。
所以&=的意思是先取地址再赋值
举例:a|=b等价于a=a|b;
同理a&=b等价于a=a&b
按位运算就是运算的时候先将操作数换算成二进制数来进行计算
譬如3 & 5就是011 & 101=001按位运算就是运算的时候先将操作数换算成二进制数来进行计算
譬如3 & 5就是011 & 101=001
如果运算对象只有一个,且为右操作数,那么&为取地址运算符,结果为操作对象的地址。例如&a(假设a是一个左值,即具有具体的可访问的地址)结果为a的地址。
如果运算对象有两个,那么&表示位与运算。结果中的每一个二进制位等于两个运算数的对应位置的二进制位按位与。每一个位的位与运算法则是,当且仅当运算数都为1时结果为1,即:1 & 1 == 1,1 & 0 == 0 & 1 == 0 & 0 == 0。
所以&=的意思是先取地址再赋值
举例:a|=b等价于a=a|b;
同理a&=b等价于a=a&b
按位运算就是运算的时候先将操作数换算成二进制数来进行计算
譬如3 & 5就是011 & 101=001按位运算就是运算的时候先将操作数换算成二进制数来进行计算
譬如3 & 5就是011 & 101=001
相关文章推荐
- <a>标签中href=\"javascript:;\"表示什么意思??
- <T extends Serializable>这是什么意思呢?看明白这个,你的问题就自然而然的明白了!
- "HiFi发烧"是什么意思?
- struts的<package name="login" namespace="/system" extends="struts-default">是什么意思?
- shell中的"2>&1"是什么意思?
- html语言里< 和 > 是什么意思,起什么作用?
- <generator class="native"></generator>这句话是什么意思
- & && | || 什么意思?怎么用?
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- shell中的"2>&1"是什么意思?
- function &instance(){} &是什么意思?
- >>,<< 是什么意思?
- <a>标签中href="javascript:;"表示什么意思??
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- <noscript><iframe src=*></iframe></noscript>是什么意思
- 关于正则表达式 g,m 参数的总结,为了回答“正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?”
- <param name="allowScriptAccess" value="never"/>是什么意思
- &nbsp是什么意思
- 计算机中的"域"到底是什么意思?有什么用出?我们为什么要加入"域"?域"和"工作组"有什么分别呢?
- "2>&1" 是什么意思