|
Home
Links
My Programs
|
DWK's nums
Here is
nums.
|
print"\nEnter positive numbers, prefix with 'b' for binary
numbers\n>";while(<>){chomp;if($_ eq''){last}elsif(/^\s*0x[a-f\d]+\s*/i){$_=lc;$_=hex;&print_number()}elsif(/^\s*0[0-7]+\s*$/){$_=oct;&print_number()}elsif(/^\s*\d+\s*$/){$_=int;&print_number()}elsif(/^\s*b\s*([10]+)\s*$/){$_=int($1);&from_binary();&print_number()}else{print"Invalid
number\n"}print'>'}sub print_number{my$x=1;printf("0x%x %i 0%o
",$_,$_,$_);if($_){for(;$x<=$_;$x*=2){}for($x/=2;$x>=1;$x/=2){print((($_/$x)%2)?"1":"0")}}else{print'0'}print"\n"}sub
from_binary{my$x=1;my$y=1;my$r=0;for(;$y<=$_;$x*=2,$y*=10){if(($_/$y)%10){$r+=$x}}$_=$r}#by DWK
|
Sample run:
C:\DWK\perl>perl nums.pl
Enter positive numbers, prefix with 'b' for binary numbers
>100
0x64 100 0144 1100100
>0x64
0x64 100 0144 1100100
>b100
0x4 4 04 100
>b111
0x7 7 07 111
>0377
0xff 255 0377 11111111
>0XFf
0xff 255 0377 11111111
>
C:\DWK\perl>
|
Files:
-
nums.zip (983):
All the files that are listed here.
-
nums_un.pl (1,144):
Uncompressed source file.
-
nums.pl (619):
Source file. (Slightly different from
nums_un.pl.)
|