cat writebug.cn/history

一个开发者的技术博客。

bash进制转换

  1. 在let命令和 $(( 表达式 ))中,支持 前缀为0的八进制数, 支持前缀是0x的十六进制数字, 支持2到64进制,使用[base#]n表示, base是2到64的十进制数值,作为数字的基数。
  2. printf "%X" 数字, 能把十进制转换为十六进制。

使用基地址+偏移量计算寄存器地址

hex() {
    printf "0x%X" $1
}

BASE=0x40000000
XPOS=0x01100010
TMP="$(( $BASE + $XPOS ))"
XADDR="`hex $TMP`"
echo "$XADDR"