Perlで2進数<−>16進数の相互変換
[上に]
[前に]
[次に]
やま
[E-Mail]
1998/12/12(土) 03:39:23
しょーもないことですいません。
Perlで2進数<−>16進数の相互変換を行う関数はあるのでしょうか。自分なりに調べてみたのですが見あたらなかったもので。
B-Cus
1998/12/13(日) 02:39:03
例えばこんな感じ。正しく動く保証はありません。
16進←→10進はsprintfやhexで。
$num=255;
$digit="11111111";
printf "%d(10) = %x(16) = %s(2)\n",$num,$num,&dec2bin($num);
printf "%s(2) = %x(16) = %s(10)\n",$digit,&bin2dec($digit),&bin2dec($digit);
sub dec2bin($){
local($_) = @_;
local($result);
do {
$result = ($_ & 1)."$result";
$_ >>= 1;
} while($_);
return $result;
}
sub bin2dec($){
local($_) = @_;
local($result);
foreach ( split(//,$_) ){
$result += ($_ & 1);
$result *= 2;
}
$result /= 2;
return $result;
}
B-Cus
1998/12/13(日) 02:48:09
あ、書き忘れナリ。
CPANなどをあさればn進数変換ライブラリが絶対見付かるはず…ですが、
見付けられませんでした。
を最初に書こうと思ってたナリよ。
やま
1998/12/15(火) 04:06:42
[[解決]]
ご丁寧にお答えいただき、ありがとうございました。
なんせPerl(CGI)もぐりなのですみません。専用の関数が無ければ自分で変換ルーチンを作らなければならないかなと考えていたので、ここまで面倒をみていただけて感激です。ありがたく使わせていただきます。
ついでといっては何ですが、'CPAN'というのを知らないので教えていただければ幸いです。
mura
1998/12/15(火) 09:49:16
CPANにはPerl関連のライブラリなどが置いてあります。
http://www.cpan.org/
ftp://ftp.dti.ad.jp/pub/lang/CPAN/index.html
[上に]
[前に]
[次に]