### Re: Decimal to Hex Converter

by tedrek (Pilgrim)
 on Aug 06, 2003 at 04:27 UTC ( #281268=note: print w/replies, xml ) Need Help??

in reply to Decimal to Hex Converter

A few things I would like to point out. This doesn't actually convert a decimal number, it converts three decimal numbers each less than 255 into a hex sequence(decimal RGB -> Hex?). Also you don't use the modulus operator '%', which does a integer divide and returns the remainder, rather than having \$f = \$d / 16;\$t = \$f * 16; \$s = \$d - \$t; you can just say \$s = \$d % 16;. And the final thing, rather than having a c-style for loop in convert (which you don't actually use) it would seem clearer to write

```foreach \$num (@dtrip) {
my \$f = int(\$num / 16);
....
```

But then again why not just handle any size number :) (with arbitrary base)

```BEGIN {
my @map = (0..9, 'A'..'Z', 'a'..'z', qw/! @ \$ % ^ & * ( ) _/);

sub convert {
my \$num = shift;
my \$base = shift || 16;

die "Base too big: Not enough characters." if \$base > \$#map;

my \$conv = '';
my \$sign = \$num > 0 ? '' : '-';
\$num = abs \$num;

while (\$num != 0) {
\$conv = \$map[\$num % \$base] . \$conv;
\$num = int(\$num / \$base);
}
return \$sign . \$conv;
}
}

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://281268]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2021-09-17 20:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?