AWK具有以下内置位处理函数-
and 与运算
执行按位与运算。
[Learnfk]$awk 'BEGIN { num1=10 num2=6 printf "(%d AND %d)=%d\n", num1, num2, and(num1, num2) }'
在执行此代码时,您将获得以下输出-
(10 AND 6)=2
compl 补码运算
它执行按位补码运算。
[Learnfk]$awk 'BEGIN { num1=10 printf "compl(%d)=%d\n", num1, compl(num1) }'
在执行此代码时,您将获得以下输出-
compl(10)=9007199254740981
lshift 左移操作
它执行按位左移操作。
[Learnfk]$awk 'BEGIN { num1=10 printf "lshift(%d) by 1=%d\n", num1, lshift(num1, 1) }'
在执行此代码时,您将获得以下输出-
lshift(10) by 1=20
rshift 右移操作
它执行按位的RIGHT SHIFT操作。
[Learnfk]$awk 'BEGIN { num1=10 printf "rshift(%d) by 1=%d\n", num1, rshift(num1, 1) }'
在执行此代码时,您将获得以下输出-
rshift(10) by 1=5
or 或运算
它执行按位或运算。
[Learnfk]$awk 'BEGIN { num1=10 num2=6 printf "(%d OR %d)=%d\n", num1, num2, or(num1, num2) }'
在执行此代码时,您将获得以下输出-
(10 OR 6)=14
xor 异或操作
它执行按位XOR操作。
[Learnfk]$awk 'BEGIN { num1=10 num2=6 printf "(%d XOR %d)=%d\n", num1, num2, xor(num1, num2) }'
在执行此代码时,您将获得以下输出-
(10 bitwise xor 6)=12
参考链接
https://www.learnfk.com/awk/awk-bit-manipulation-functions.html