"René Lønstrup \(AKA Rel7Star\)" <7star@iname.com> writes:
> Hejsa
>
> Er der nogle af genierne herinde der ved hvordan (hvis) man kan
> omregne en værdi i almindelig 10-talssystem decimal-tal (selvfølge
> hele tal uden kommaer) til hex-værdier? Og evt. omvendt (hvis det da
> ikke er åbenlyst hvordan man gør).
>
> Takker lige på forhånd, - tak!
Dec->Hex
Tag et tal (decimal).
Gentag indtil tal er 0:
divider tal med 16 - noter "resten" ned (17/16 - resten: 1)
- skriv 10 som A, 11 som B,....,15 som F
læs tallet i omvendt rækkefølge
212
212/16 -> 13 rest 4 -> 4
13/16 -> 0 rest 13 -> D
dvs: D4
Hex->Dec
sæt mellemsum til nul
for hvert ciffer fra venstre:
omform til decimal (A er 10, B er 11 etc.)
gang din mellemsum med 16 og læg det omformede tal til.
din mellemsum er tallet i decimal nu.
pseudocode for en generel omformer:
function radixconv(tal,radixstart,radixend):
radix='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
// konverter fra radix radixstart til heltal.
result=0
for ciffer in tal:
result=result*radixstart+radix.pos(upper(ciffer))
// konverter fra heltal til radixend
rstr=''
while result:
rtal=result mod radixend
rstr=rstr+radix[rtal]
result=result div radixend
return rstr
--
Mvh. Kim Petersen /| Tlf: +4575831551 |\ Jomfru Ingefreds Vej 18
Software Engineer / | Fax: (none atm.) | \ 7100 Vejle
LSS / | Email: kim@vindinggaard.dk | \ DK - Danmark