in reply to RE: decimal to binary
in thread decimal to binary

Ouch. Your bin2dec is doing absolutely nothing but making sure it's an integer.

You really need to think in terms of "numbers" being processed, not "decimal numbers". The value 47 internally is not in decimal or binary, conceptually. It's just forty seven things. So $a = 47 starts with a decimal 47 as I type it in, then converts that to the concept of 47, and assigns that to $a.

So what we really have are building blocks:

$decimal = sprintf "%d", $num; # or trivially removed, since automatic $octal = sprintf "%o", $num; $hex = sprintf "%h", $num; $binary = sprintf "%b", $num; # 5.6 only $num = 0+ $decimal; # or trivially removed, since automatic $num = oct($octal); $num = unpack "N", pack "H*", $hex; $num = unpack "N", pack "B*", $binary;
Then combine as needed.

-- Randal L. Schwartz, Perl hacker

Replies are listed 'Best First'.
RE: RE: RE: decimal to binary
by dempa (Friar) on Jun 06, 2000 at 12:49 UTC

    Ouch. Your bin2dec is doing absolutely nothing but making sure it's an integer.

    Ehh.. but it does the job in question, right? Converting a supplied binary number to decimal.

    update: OK, maybe that's not the definition of "decimal". Everyone happy if we rename the sub to bin2int? :)