Erstellt von:
|
Peter Riedel
|
Schwierigkeitsgrad:
|
fortgeschritten
|
Modell:
|
Voyage 200
|
Entwicklungsstand:
|
noch in Arbeit (TODO: Umrechnung negativ dec)
|
Umrechnung von Dezimalzahl in Hexadezimalzahl mit Vor- und Nachkommastelle(n)
Bearbeiten
:dectohex(dec)
:Prgm
:ClrIO
:setMode("Base","Dec")→base
:Local hex,hexa
:""→hex
:© Nachkommastelle(n)
:If mod(dec,1)≠0 Then
: © Local ...
: mod(dec,1)→rest
: rest→list[1]
: 2→i
: Loop
: rest*16→hexa
: mod(hexa,1)→rest
: rest→list[i]
: If int(hexa)≤9 Then
: hex&string(int(hexa))→hex
: ElseIf int(hexa)=10 Then
: hex&"A"→hex
: ElseIf int(hexa)=11 Then
: hex&"B"→hex
: ElseIf int(hexa)=12 Then
: hex&"C"→hex
: ElseIf int(hexa)=13 Then
: hex&"D"→hex
: ElseIf int(hexa)=14 Then
: hex&"E"→hex
: Else
: hex&"F"→hex
: EndIf
: 0→k
: For j,1,i,1
: If list[j]=rest Then
: k+1→k
: If k=1 Then
: j→periodic
: Else
: Exit
: EndIf
: EndIf
: EndFor
: If k=2 Then
: ","&left(hex,periodic-1)&"~"&mid(hex,periodic,j-periodic)→hex
: Exit
: EndIf
: If mod(hexa,1)=0 Then
: ","&hex→hex
: Exit
: EndIf
: i+1→i
: EndLoop
: int(dec)→dec
:EndIf
:© Vorkommastelle(n)
:Loop
: mod(dec,16)→hexa
: If hexa≤9 Then
: string(hexa)&hex→hex
: ElseIf hexa=10 Then
: "A"&hex→hex
: ElseIf hexa=11 Then
: "B"&hex→hex
: ElseIf hexa=12 Then
: "C"&hex→hex
: ElseIf hexa=13 Then
: "D"&hex→hex
: ElseIf hexa=14 Then
: "E"&hex→hex
: Else
: "F"&hex→hex
: EndIf
: int(dec/16)→dec
: If dec=0
: Exit
:EndLoop
:© negativ?
:© Ausgabe
:Disp hex
:setMode("Base",base)
:EndPrgm
Umrechnung von Hexadezimalzahl in Dezimalzahl mit Vor- und Nachkommastelle(n)
Bearbeiten