C/C++ Bin2Dec pg Bin2Hex

Tags:    c++ diverse

User
Bruger #606 @ 03.12.01 14:42
Hejsa...

Jeg er ved at lave et program som kan omregne Dec2Hex, Dec2Bin, Hex2Dec og Hex2Bin. Jeg kan bare ikke finde ud af at lave fra Bin2Dec og Bin2Hex, så hvis der er nogle der ude som kan hjælpe mig vil jeg blive lykkelig.

Med Venlig Hilsen
[Qrazy]Framebuf (René Lyng)
Http://www.framebuf.zondo.dk -> Mig Hjemmeside
Http://www.friserverplads.dk/Qrazy -> Min Clans Hjemmeside



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
User
Bruger #700 @ 29.12.01 01:53
<quote>Hejsa...

Jeg er ved at lave et program som kan omregne Dec2Hex, Dec2Bin, Hex2Dec og Hex2Bin. Jeg kan bare ikke finde ud af at lave fra Bin2Dec og Bin2Hex, så hvis der er nogle der ude som kan hjælpe mig vil jeg blive lykkelig.

Med Venlig Hilsen
[Qrazy]Framebuf (René Lyng)
Http://www.framebuf.zondo.dk -> Mig Hjemmeside
Http://www.friserverplads.dk/Qrazy -> Min Clans Hjemmeside</quote>

Hvis resultatet skal være et tal:

DWORD Bin2Dec (LPCSTR lpszBin) {
int x, nSize;
DWORD dwResult;
nSize = lstrlen(lpszBin);
dwResult = 0;
for (x=0; x<nSize; x++) {
if (*(lpszBin+x) == '1')
dwResult+=(DWORD)pow(2, (double)x);
}
return dwResult;
}

Hvis resultatet skal være en tekst-streng:

VOID Bin2Dec (LPCSTR lpszBin, LPSTR lpszBuffer) {
int x, nSize;
DWORD dwResult;
nSize = lstrlen(lpszBin);
dwResult = 0;
for (x=0; x<nSize; x++) {
if (*(lpszBin+x) == '1')
dwResult+=(DWORD)pow(2, (double)x);
}
wsprintf(lpszBuffer, "%u", dwResult);
}


Bin2Hex kan du lave ved at kombinere Bin2Dec og Dec2Hex



Jeg er ved at lave et program som kan omregne Dec2Hex, Dec2Bin, Hex2Dec og Hex2Bin. Jeg kan bare ikke finde ud af at lave fra Bin2Dec og Bin2Hex, så hvis der er nogle der ude som kan hjælpe mig vil jeg blive lykkelig.

Hej
Jeg har en nem måde at regne om på. Husk

LSB MSB
0 1 0
d0 d1 d2

Omregning
dec = d0 *1 + d1*2 + d2*4 +dn * z (1 2 4 8 16 32 64 .....d*2^(n-1))

Den anden vej kan det gøre ved hjælp af simpel divition.
Tallet undersøges hvilke tal der er det største der gør op i tallet, dette makres og tallet trækkes fra. O derefter forsøges at gøre det samme blot med et mindre tal. (disse tal skal være 1 2 4 8 16 32 osv) metoden er hurtig og simpel hvis der udvikles en god algoritme til dette....

MVH
Janus










t