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