- 在let命令和
$(( 表达式 ))
中,支持 前缀为0的八进制数, 支持前缀是0x的十六进制数字, 支持2到64进制,使用[base#]n
表示, base是2到64的十进制数值,作为数字的基数。 - printf "%X" 数字, 能把十进制转换为十六进制。
使用基地址+偏移量计算寄存器地址
hex() {
printf "0x%X" $1
}
BASE=0x40000000
XPOS=0x01100010
TMP="$(( $BASE + $XPOS ))"
XADDR="`hex $TMP`"
echo "$XADDR"