我需要使用shell脚本将有符号的int32编号转换为无符号的
例如:
convert Input : -256
Expected output: 4294967040发布于 2016-09-21 07:38:27
这能帮到你;
#!/bin/bash
input=$1
if [[ $input -lt "0" ]]; then
output=$((4294967296+$input))
else
output=$input
fi
echo $output
#signed int32;
#–2,147,483,648 to 2,147,483,647
#unsigned int32
#0 to 4,294,967,295发布于 2017-03-20 21:16:44
这可能不是最快的,但似乎起作用了
unsigned_to_signed()
{
local hex=$(printf "0x%x" $(( $* )))
local unsigned=$(printf "%u" $hex )
echo $unsigned
}
unsigned_to_signed32()
{
local hex=$(printf "0x%x" $(( $* & 0xFFFFFFFF )))
local unsigned=$(printf "%u" $hex )
echo $unsigned
}
unsigned_to_signed -256
18446744073709551360
unsigned_to_signed32 -256
4294967040https://stackoverflow.com/questions/39609628
复制相似问题