二进制 八进制 十六进制转换为十进制数字
## hex 十六进制转换为十进制
$number = hex("0xfff8");
$number = hex("fff8");
## oct 将0b开头的按照二进制转换为十进制
## oct 将0开头的按照八进制转换为十进制
## oct 将0x开头的按照十六进制转换为十进制
print oct "0b11011";
print oct "0775";
print oct "0x2e3f";
print oct "0775ff"; ## 字符串尾的'ff'被过滤
各种进制的相互转换
perl使用sprintf
函数格式化字符串并返回.
printf
格式化字符串并输出到默认句柄或指定句柄.
sprintf FORMAT, LIST
printf FORMAT, LIST
printf FILEHANDLE FROMAT, LIST
sprintf
用于转换数字的格式,且能获取转换后的值
字段 | 含义 |
---|---|
%b | 无符号整数,二进制 |
%e | 浮点数,采用科学计数法,使用e |
%o | 无符号整数,八进制 |
%x | 无符号整数,十六进制 |
## e.g.
print sprintf "%x", 35; ## 23
printf "%08b", 011; ## 00001001 八进制->二进制
printf "%08b", 11; ## 00001011 十进制->二进制
printf "%08b", 0x11; ## 00010001 十六进制->二进制