if [ $((${nValID} & 0x1)) -eq 1 ]; then #...snip...fiif [ $((${nValID} & 0x2)) -eq 2 ]; then #...snip...fi解决方法 它以每比特为基础测试nValID.
按位AND运算符(&)表示逐位运算符将进行AND比较.因此,如果nValID是一个字节(8位)值,那么请查看二进制 *** 作:
nValue & 0b00000001
如果nValue为42,那么 *** 作将如下所示
(nValue = 0b00101010) & 0b00000001 => 0b00000000 // (does not have the last bit set)(nValue & 0b00000001) == 0b00000001 // false
而对于第二个(nValID& 0x2)
(nValue = 0b00101010) & 0b00000010 => 0b00000010 // (has the 2nd-to-last bit set)(nValue & 0b00000010) == 0b00000010 // true
这对于测试变量中的标志非常有用;通常使用AND通过隔离位来检查标志,使用OR来组合标志.
0b00001000 | 0b00000010 | 0b00000001 => 0b00001011总结
以上是内存溢出为你收集整理的linux – 算术评估中的&符号和带有x的数字在Bash中是什么意思?全部内容,希望文章能够帮你解决linux – 算术评估中的&符号和带有x的数字在Bash中是什么意思?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)