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
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= true
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$
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
} until n2==0
}
}
if neg then {="-"+a$} else =a$
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}}==