linux – 算术评估中的&符号和带有x的数字在Bash中是什么意思?

linux – 算术评估中的&符号和带有x的数字在Bash中是什么意思?,第1张

概述我很好奇下面的比较究竟是什么,尽可能详细,特别是关于0x2和&人物以及他们到底做了什么, if [ $((${nValid} & 0x1)) -eq 1 ]; then #...snip...fiif [ $((${nValid} & 0x2)) -eq 2 ]; then #...snip...fi 它以每比特为基础测试nValid. 按位AND运算符(&)表示逐位运算符将进行A 我很好奇下面的比较究竟是什么,尽可能详细,特别是关于0x2和&人物以及他们到底做了什么,

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中是什么意思?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1021376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存