gpt4 book ai didi

使用 'xxd' 的二进制到 ASCII 转换

转载 作者:行者123 更新时间:2023-12-04 12:44:12 25 4
gpt4 key购买 nike

我知道如何将十六进制转储转换为 ASCII。
echo 54 58 72 56 etc | xxd -r -p -> 将产生 ASCII 输出

但我正在努力将以下二进制代码转换为 ASCII。

01000001 01110010 01100101 01101110 00100111 01110100 00100000 01111001 01101111 01110101 00100000 01100001 00100000 01101100 01101001 01110100 01110100 01101100 01100101 00100000 01110011 01101000 01101111 01110010 01110100 00100000 01100110 01101111 01110010 00100000 01100001 00100000 01110011 01110100 01101111 01110010 01101101 00100000 01110100 01110010 01101111 01101111 01110000 01100101 01110010 00111111 00001101 00001010

我需要使用 'xxd' 或尽可能短的类似命令来执行此操作。

先感谢您!

最佳答案

如果您想坚持使用 xxd ,那么你需要先将每个二进制数转换为十进制数。如果您使用的是 bash , 和 x包含你是二进制字符串,然后:

for a in $x; do printf "%x" $((2#$a)); done | xxd -r -p 
$((2#$a))在bash中是二进制到十进制的转换,而 printf将其转换为十六进制。然后只需将其通过管道发送到 xxd - 得到你以前得到的。

Aren't you a little short for a storm trooper?



如果字符串包含在文件中,则逐行读取,然后逐字读取。另一种选择是仅使用 printf ,但是你需要八进制数,所以使用 printf两次:
for a in $x; do printf \\$(printf "%o" $((2#$a))); done

其实最后一个可以用 hex 来完成同样,只需使用代替 \\ \\x%o恢复到 %x .

关于使用 'xxd' 的二进制到 ASCII 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49075346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com