Hex 关于二进制代码的转换 bash

我正在尝试转换一系列字节 hex 在 bin 通过 bash.
但我继续得到/这看起来很随意/ 答案 "/standard_in/ 1: 语法错误" 从以下代码:


for j in c4 97 91 8c 85 87 c4 90 8c 8d 9a 83 81
do
BIN=$/echo "obase=2; ibase=16; $j" | bc /
echo $BIN
done


我做了一样 dec to bin, 哪个工作正常:


for i in {0..120}
do
KEYBIN=$/echo "obase=2; ibase=10; $i" | bc/
echo $KEYBIN
done


有没有人知道他为什么用小数分数,但不是 hex?
在我看来,语法几乎相同 /如果我不错过一些真正复杂的东西。/
已邀请:

帅驴

赞同来自:

BC 对价值的寄存器有点敏感 hex, 将其更改为顶部登记册,它应该工作


for j in C4 97 91 8C 85 87 C4 90 8C 8D 9A 83 81
do
BIN=$/echo "obase=2; ibase=16; $j" | bc /
echo $BIN
done


出口:


11000100
10010111
10010001
10001100
10000101
10000111
11000100
10010000
10001100
10001101
10011010
10000011
10000001

三叔

赞同来自:

这是我使用的脚本:


#!/bin/bash
# SCRIPT: hex2binary.sh
# USAGE: hex2binary.sh Hex_Number/s/
# PURPOSE: Hex to Binary Conversion. Takes input as command line
# arguments.
#####################################################################
# Script Starts Here #
#####################################################################

if [ $# -eq 0 ]
then
echo "Argument/s/ not supplied "
echo "Usage: hex2binary.sh hex_number/s/"
else
echo -e "\033[1mHEX \t\t BINARY\033[0m"

while [ $# -ne 0 ]
do
DecNum=`printf "%d" $1`
Binary=
Number=$DecNum

while [ $DecNum -ne 0 ]
do
Bit=$/expr $DecNum % 2/
Binary=$Bit$Binary
DecNum=$/expr $DecNum / 2/
done

echo -e "$Number \t\t $Binary"
shift
# Shifts command line arguments one step.Now $1 holds second argument
unset Binary
done

fi

裸奔

赞同来自:

我想出了这个:

printf 由B改变。 hex, xxd -r-p takes ascii hex 并使它实际二进制

倾销 hexdump, 证明它有效......


printf "6x" 53687091200 | xxd -r -p | hexdump -C

莫问

赞同来自:

试试吧:


for j in c4 97 91 8c 85 87 c4 90 8c 8d 9a 83 81
do
BIN=$/echo "obase=2; ibase=16; ${j^^}" | bc /
echo $BIN
done

要回复问题请先登录注册