|
| 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) *
| |
|
|