Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

(tye)Re: Extract numbers in multiple bases

by tye (Cardinal)
on Oct 15, 2001 at 03:32 UTC ( #118789=note: print w/ replies, xml ) Need Help??


in reply to Extract numbers in multiple bases

sub isNumber { local( $_ )= @_; my( $ok, $val, $base ); if( s/h$//i && s/^/0x/ || m/^0x/ ) { $ok= m/^0x[\da-f]+$/i; $val= hex($_); $base= 16; } elsif( s/o$//i ) { $ok= m/^[0-7]+$/; $val= oct($_); $base= 8; } else { my $warn; local( $SIG{__WARN__} )= sub { $warn= $_[0]; }; local( $^W )= 1; $val= 0 + $_; $ok= ! $warn; $base= 10; } $_[1]= $val; $_[2]= $base; return $ok; } my $num= <STDIN>; my $val; if( isNumber( $num, $val, $base ) ) { print "Your number's value is $val in base $base.\n"; } else { print "Your number is invalid but might be close to $val in base $ +base.\n"; }

Note that I didn't treat a leading zero as octal and I'm a bit inconsistant with how much whitespace I'll ignore.

Updated: To return the base.

        - tye (but my friends call me "Tye")


Comment on (tye)Re: Extract numbers in multiple bases
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://118789]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2014-12-27 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls