Decimal floating point number to binary: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 596: | Line 596: | ||
neg=left$(n$,1)="-": if neg then n$=mid$(n$,2) |
neg=left$(n$,1)="-": if neg then n$=mid$(n$,2) |
||
if instr(n$, dp$)>0 then { |
if instr(n$, dp$)>0 then { |
||
n2$=Piece$(n$,dp$,2) |
n2$=Piece$(n$,dp$,2) |
||
n$=Piece$(n$, dp$,1) |
n$=Piece$(n$, dp$,1) |
||
} else n2$="" |
} else n2$="" |
||
n0=0 |
n0=0 |
||
Line 609: | Line 609: | ||
next i |
next i |
||
if n2$<>"" then { |
if n2$<>"" then { |
||
For i=1 to len(n2$) |
For i=1 to len(n2$) |
||
dig$=Mid$(n2$,i,1) |
dig$=Mid$(n2$,i,1) |
||
dig=asc(dig$)-48 |
dig=asc(dig$)-48 |
||
Line 615: | Line 615: | ||
if dig>=frombase then error "not in base:"+frombase |
if dig>=frombase then error "not in base:"+frombase |
||
n0+=dig/frombase^i |
n0+=dig/frombase^i |
||
Next i |
|||
} |
|||
if neg then n0-! |
if neg then n0-! |
||
=n0 |
=n0 |
||
Line 623: | Line 623: | ||
a$="" |
a$="" |
||
neg=false |
neg=false |
||
if dec<0 then neg= |
if dec<0 then neg=true |
||
dec=abs(dec) |
dec=abs(dec) |
||
n2=frac(dec) |
n2=frac(dec) |
||
Line 633: | Line 633: | ||
} until dec==0 |
} until dec==0 |
||
if n2<>0 then { |
if n2<>0 then { |
||
a$+=dp$ |
|||
do { |
do { |
||
dec=n2*tobase |
dec=n2*tobase |
||
n2=frac(dec) |
n2=frac(dec) |
||
dec-=n2 |
dec-=n2 |
||
if dec>=10 then dec+=7 |
if dec>=10 then dec+=7 |
||
a$+=chr$(dec+48) |
a$+=chr$(dec+48) |
||
} until n2==0 |
|||
} |
} |
||
if neg then {="-"+a$} else |
if neg then {="-"+a$} else =a$ |
||
} |
} |
||
Print Conv2dec("10111.01011",2); " => ";Conv2Any$(23.34375,2) |
Print Conv2dec("10111.01011",2); " => ";Conv2Any$(23.34375,2) |
||
Line 657: | Line 657: | ||
11,90625 |
11,90625 |
||
</pre> |
</pre> |
||
=={{header|Maple}}== |
=={{header|Maple}}== |