printf  -- format and print date 通过printf的选项格式化输出数据


基本英文学习

二进制:binanry number

八进制:otcal number

十进制:decimal number

十六进制: hexadecimal number


1、基本的打印输出(默认不换行\n换行)

# printf "hello,world"
hello,world

#printf "hello,world\n"
hello,world


2、进制的转换

%x 十六进制

%d 十进制

%o 八进制


十进制转16进制

# printf "%x\n" 27 
1b

# printf "%x\n" 19713  查到占用较高CPU的线程号转换为16进制,以便于jstack查看
4d01


16进制转十进制

# printf "%d\n" 0x1b
27

# printf "%d\n" 0x4d01
19713


(注意 转换进制可以使用bc命令 如装换成为2进制) ibase输入的进制;obase输出的进制) 

10进制转为2进制

# echo 'obase=2;10'|bc
1010

带变量的处理常用在shell脚本中

# a=10
# echo "obase=2;$a" |bc
1010


2进制转换10进制

# echo 'ibase=2;111'|bc
7


综合的高级用法:

# cat file.txt 
100
200
300
# awk‘{print "ibase=10;obase=2;" $1}‘file.txt |bc |xargs printf "%08d\n"
01100100
11001000
100101100