Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Wieder einmal bitoperationen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.09.2003, 09:42 Uhr
~andreasK
Gast


SO hab da jetzt 4 Bits vom Typ char und will die jetzt hintereinander in einen int schreiben, kann mir da jemand sagen wie das geht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.09.2003, 09:44 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


4Bits?!? Meinst wohl 4Bytes oder?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.09.2003, 09:47 Uhr
~andreasK
Gast


ja hab mich vertan sorry,
hab also 4 vom typ char und will die in einen int schreiben!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.09.2003, 09:58 Uhr
virtual
Sexiest Bit alive
(Operator)


Wer weiß schon so genau, wofür das gut ist ...:

C++:
char* text="vier";
int i = *(int*)text;


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
11.09.2003, 10:06 Uhr
~andreasK
Gast


naja wozu das gut ist lese aus einer datei die ersten paar byte aus und muss dann die ersten 11 Bit suchen die hintereinander kommen und die dürfen nur aus einsen bestehen vielleicht gibs ja auch ne andere möglichkeit, denn ich willl dann diesen int mit einer maske vergleichen die auch aus 11 einsen besteht!

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
11.09.2003, 10:12 Uhr
void*
Generic Pointer
(Operator)


Hallo,

vielleicht was nach diesem Muster?


C++:
int main(void)
{
  char a=0xAA, b=0xBB, c=0xCC, d=0xDD;
  int i=0;

  i|=(a&0x000000FF);
  i|=((b<<8)&0x0000FF00);
  i|=((c<<16)&0x00FF0000);
  i|=((d<<24)&0xFF000000);

  return(0);
}


--
Gruß
void*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
11.09.2003, 10:16 Uhr
virtual
Sexiest Bit alive
(Operator)


Naja, guck Dir mal das 45. Virtualrätsel zu diesem Thema an:
Angenommen, du hast in der Datei die Zeichen "ABCD" stehen. Die entsprechenden Bytes sind also 65, 66, 67, und 68.
Wenn du Die jetzt einfach in ein int wandelts, kann das Resultat sein:
a) 65+256*66+65536*67+16777216*68.
b) 68+256*67+65536*66+16777216*65.
Hängt davon ab, ob Dein Rechner mit Little (b) oder Big (a) Endian arbeitet. Also hast du da etwas unportables.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
11.09.2003, 10:17 Uhr
~andreasK
Gast


ne meine maske sieht so aus:


C++:
    int maske = 0x7FF << 21;


jetzt les ich aus der Datei die ersten Byte aus:

C++:
            while (!feof(file))
            {

                if ( rad < 5)
                {
                    //fseek(file, 0, SEEK_CUR);
                    fread(&result, 1, 1, file);
                                                                rad++;

                }
            }


so und jetzt will ich diese ersten vier byte darauf hinuntersuchen ob sie auch an den ersten 11 stellen eine 1 besitzen! Wenn ja ausgabe!

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
11.09.2003, 10:42 Uhr
0xdeadbeef
Gott
(Operator)


@virtual: Du ignorierst das Null-Zeichen am Ende. Besser:

C++:
char a[4] = { 'v', 'i', 'e', 'r' };
int i = *((int*) &a);


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: