Chinaunix首页 | 论坛 | 博客
  • 博客访问: 332044
  • 博文数量: 53
  • 博客积分: 1132
  • 博客等级: 少尉
  • 技术积分: 451
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-18 14:22
文章分类

全部博文(53)

文章存档

2014年(1)

2013年(11)

2012年(17)

2011年(16)

2010年(8)

分类:

2012-11-20 15:05:50

原文地址:perl 各种进制的转换 作者:snowtty

Issue and description:
----------------------------------------------------------------------------------------------------------------------------
perl 各种进制的转换


Solution:
----------------------------------------------------------------------------------------------------------------------------
1,十进制和二进制之间的转换:
要将10进制转换成2进制,首先将其按照网络字节顺序打包,然后逐位解包:例如:
/home/lee#perl -
$dec=10;
$bin=unpack("B32",pack("N",$dec));
print "$bin ";
__END__
00000000000000000000000000001010

2:将二进制转换成十进制:
将二进制转换成十进制,可以反过来操作:如:
/home/lee#perl -
$dec=unpack("N",pack("B32",00000000000000000000000000000011));
print "$dec ";
__END__
2147483648
PS:用这样的方法转换字符必需要32位.

3:十进制和八进制之间转换:
用perl的sprintf函数即可:如:
/home/lee#perl -e 'printf sprintf "%lo ",20'
24

4:八进制和十进制之间转换:
用perl的oct函数即可:如:
/home/lee#perl -e 'print oct 24," "'
20

5:十进制和十六进制之间转换:
利用perl的sprintf函数,附带%x转换符即可:如:
/home/lee#perl -e 'print sprintf "%x ",255'
ff

6十六进制和十进制转换:
用perl的hex函数即可实现 ,如:
/home/lee#perl -e 'print hex 0xA," "'
16

阅读(3999) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~