AWK 十进制转二进制

Ham*_*ani 2 binary awk decimal

我想使用 AWK 将文件中的十进制数字列表转换为二进制,但似乎没有内置方法。示例文件如下:

134218506
134218250
134217984
1610612736
16384
33554432
Run Code Online (Sandbox Code Playgroud)

Jam*_*own 5

这是一种 awk 方式,为您的乐趣而功能化:

awk '
function d2b(d,  b) {
      while(d) {
          b=d%2b
          d=int(d/2)
      }
      return(b)
}
{
    print d2b($0)
}' file
Run Code Online (Sandbox Code Playgroud)

前三个记录的输出:

1000000000000000001100001010
1000000000000000001000001010
1000000000000000000100000000
Run Code Online (Sandbox Code Playgroud)