/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Hexadecimalt til binaert til decimalt
Fra : Peter Thornton


Dato : 17-01-01 17:56

Hej..

Jeg har en c-string med 4 tegn (0-9,a-f).

Den skal konverteres til de binaere værdier for hvert tegn.

DVS..

3a5f skal blive til -> 0011 1010 0101 1111

Den skal så deles i to 8-bit dvs. 0011 1010 og 0101 1111

De skal så konverteres til to decimale tal dvs. 58 og 85..

Hvordan gør jeg lige det nemmest..??

MVH

Peter



 
 
Igor V. Rafienko (17-01-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 17-01-01 18:15

* Peter Thornton

[snip]

> 3a5f skal blive til -> 0011 1010 0101 1111
>
> Den skal så deles i to 8-bit dvs. 0011 1010 og 0101 1111
>
> De skal så konverteres til to decimale tal dvs. 58 og 85..


Er ikke det mye enklere å gå fra 3a til 58 direkte?


> Hvordan gør jeg lige det nemmest..??


Del opp sekvensen i blokker av 2 tegn. Send disse blokkene til
strtol(). Evt. kan du gjøre den jobben som strtol ville ha gjort selv,
med tanke på at input'en er såpass simpel.





ivr
--
Much of this software was user-friendly, meaning that it was intended
for users who did not know anything about computers, and furthermore
had absolutely no intention whatsoever of learning.
   -- A. S. Tanenbaum, "Modern Operating Systems, ch 1.2.4"

Carsten Svaneborg (18-01-2001)
Kommentar
Fra : Carsten Svaneborg


Dato : 18-01-01 08:17

Peter Thornton wrote:
> Jeg har en c-string med 4 tegn (0-9,a-f).

long l= strtol(str,NULL,16)

giver dig en long med værdien, hvis strengen starter med "0x"
kan du erstatte 16 med 0.

> Den skal konverteres til de binaere værdier for hvert tegn.

l & 0xff giver dig de laveste 8 bit.
l & 0xff00 >> 8 giver dig resten over 8 bits.

--
No matter how fast light travels it finds *
the darkness has always got there first, * Carsten Svaneborg
    and is waiting for it. * zqex at risoe.dk
   -- (Terry Pratchett, Reaper Man) *

Peter Thornton (19-01-2001)
Kommentar
Fra : Peter Thornton


Dato : 19-01-01 01:03

Takker til jer begge!
Det var lige præcis strtol jeg skulle bruge. Det var jeg aldrtig selv kommet
i tanke om.

MVH

Peter

Carsten Svaneborg <zqex@linuxstart.com> wrote in message
news:3A669834.FF051C79@linuxstart.com...
> Peter Thornton wrote:
> > Jeg har en c-string med 4 tegn (0-9,a-f).
>
> long l= strtol(str,NULL,16)
>
> giver dig en long med værdien, hvis strengen starter med "0x"
> kan du erstatte 16 med 0.
>
> > Den skal konverteres til de binaere værdier for hvert tegn.
>
> l & 0xff giver dig de laveste 8 bit.
> l & 0xff00 >> 8 giver dig resten over 8 bits.
>
> --
> No matter how fast light travels it finds *
> the darkness has always got there first, * Carsten Svaneborg
> and is waiting for it. * zqex at risoe.dk
> -- (Terry Pratchett, Reaper Man) *



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste