Bash 按位运算符

标签 bash syntax bitwise-operators

知道为什么下面的代码不起作用吗?

hex_var='a'
processed=((3 & $hex_var) | 8)

仍然对“算术扩展”了解不多!

最佳答案

你的算术表达式是错误的。您可以执行以下操作:

hex_var=0xa
processed=$(( (3 & $hex_var) | 8 ))
echo $processed # yields 10

或者,按照 Gordon Davisson 的建议,您可以使用 # 表示法显式指定基数:

hex_var=a
processed=$(( (3 & 16#$hex_var) | 8 ))

参见:

关于Bash 按位运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48896433/

相关文章:

delphi - 寻找完整的 Delphi (object pascal) 语法

python - 你如何在 Python 中表达二进制文字?

java - 如何用位运算替换这个字符串运算?

regex - Bash 匹配字符串与正则表达式

bash - 查找已使用 bzr 提交的字符串变量名称的更改

php - 这个带有插入符号的 PHP 语法是什么,它有什么作用?

c++ - 0到n之间有多少个数满足按位属性i&y==i?

java - 使用位运算符 JAVA 交换 int[][] 数组中每行/列的顶部和底部 2 位

linux - 如果在 bash 中运行特定命令,如何获得通知

linux - shell 脚本 : fire a command if system time is equal to given time