Locations of visitors to this page

Wednesday, March 11, 2009

base conversion using command line 命令行中的进制转换

base conversion using command line
命令行进制转换


1. shell内置的算术扩展功能(Shell expansion- Bash Guide for Beginners)

16进制->10进制:
# echo $((0xFACE))
64206
不区分大小写
# echo $((0xface))
64206

或写成"BASE#N"的形式
# echo $((16#FACE))
64206

10进制->16进制:
好像不行


2. coreutils的printf命令

16进制->10进制:
# printf '%d\n' 0xFACE
64206
格式语法如同C
# printf '%08d\n' 0xFACE
64206

10进制->16进制:
# printf '%#08X\n' 64206
0X00FACE


3. bc(Basic Calculator)计算器

16进制->10进制:
# echo 'ibase=16;obase=A;FACE' | bc
64206
第二个参数obase必须是16进制表示的, 大写的
要转换的数值也必须是大写的

10进制->16进制:
# echo 'ibase=10;obase=16;64206'|bc
FACE


4.awk脚本

16进制->10进制:
用printf函数转
# awk 'BEGIN {printf "%d\n", 0xFACE}'
64206
或用non-decimal-data选项
# echo 0xFACE| awk --non-decimal-data '{print $1}'
64206

10进制->16进制:
# awk 'BEGIN {printf "%#08X\n", 64206}'
0X00FACE


5. dc(Digital Calculator)计算器

16进制->10进制:
# echo "16i FACE p"|dc
64206

10进制->16进制:
# echo "16o 64206 p" | dc
FACE


6. perl脚本

16进制->10进制:
# perl -e 'printf ("%d\n", 0xFACE)'
64206
带上输出格式
# perl -e 'printf ("%08d\n", 0xFACE)'
00064206

10进制->16进制:
# perl -e 'printf ("%#08X\n", 64206)'
0X00FACE


7. python

16进制->10进制:
# python -c 'print "%d" % int("0xFACE",16)'
64206
格式输出:
# python -c 'print "%08d" % int("0xFACE",16)'
00064206

10进制->16进制:
# python -c 'print "%#08X" % 64206'
0X00FACE



-fin-

No comments:

Website Analytics

Followers