我正在尝试将十六进制字符串转换为二进制。我正在使用:
echo "ibase=16; obase=2; $line" | BC_LINE_LENGTH=9999 bc
Run Code Online (Sandbox Code Playgroud)
它会截断前导零。也就是说,如果十六进制字符串为4F,则将其转换为1001111;如果为0F,则将其转换为1111。我需要的是01001111和00001111
我能做什么?
我试图XOR两个大的二进制值.然而,
echo ${hashArray[1]}
echo ${hashArray[2]}
echo $((${hashArray[1]} ^ ${hashArray[2]}))
Run Code Online (Sandbox Code Playgroud)
得到:
10100100000111101011100001101110000110000100001000000111001001100010110000010010111101100110111001111100010010000000010101110111
00001110110000010110101101011011100101101000011100011101001101101010000100110001001110101101111100010001111010100011010000000100
4018181242766406943
Run Code Online (Sandbox Code Playgroud)
为什么echo $((${hashArray[1]} ^ ${hashArray[2]}))输出十进制数?它不应该是另一个大的二进制值吗?
bash ×2