perl实现16进制数转换成10进制数
发布时间:2020-12-16 00:35:46 所属栏目:大数据 来源:网络整理
导读:16进制数转换成10进制数,通过Math:BigInt模块实现 #!/usr/bin/perl use warnings; use strict; use Math::BigInt; my %hex_hash = (0=0,1=1,2=2,3=3,4=4,5=5,6=6,??7=7,8=8,9=9,a=10,b=11,c=12,d=13,e=14,f=15); ???? sub hex_to_dec{ ??my $data = shift;
16进制数转换成10进制数,通过Math:BigInt模块实现
#!/usr/bin/perl use warnings; use strict; use Math::BigInt; my %hex_hash = (0=>0,1=>1,2=>2,3=>3,4=>4,5=>5,6=>6,??7=>7,8=>8,9=>9,a=>10,b=>11,c=>12,d=>13,e=>14,f=>15); ???? sub hex_to_dec{ ??my $data = shift; ??my $index = shift; ??--$index; ??my $result = Math::BigInt->new(0); ??my $factor = Math::BigInt->new(1); ??while($index >=2 ){ ????my $digit = substr($data,$index,1); ????if ($digit =~/[a-fA-F]/){ ??????$digit = lc $digit; ??????$digit = $hex_hash{$digit}; ????} ????my $temp = Math::BigInt->new($digit); ????$temp->bmul($factor); ????$result->badd($temp); ????--$index; ????$factor->bmul(16); ??} ??return $result; } print hex_to_dec("0x10",length("0x10")),"n"; print hex_to_dec("0xfff",length("0xfff")),"n";
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Spring Boot 2.x整合Redis
- 春天 – @NotTransactional替代品
- delphi – 在标准用户上尝试写入HKLM时如何不触发异常?
- macos – golang工具pprof无法正常工作 – 无论性能分析目标
- Delphi中关于资源释放(Free,Relealse,FreeAndNil)
- 为什么将0xFFFFFFFF分配给UInteger会在VB.NET中生成错误?
- Django bug集:TypeError: environment can only contain s
- 弹性搜索错误操作[search]和lang [groovy]被禁用?
- [VB.NET]请问如何在dataGrid中显示搜索结果?
- 【POJ】2329 Nearest number - 2(搜索)