Hi, ich verstehe grundsetzlich folgenden code nicht:
array[1] = (addr & 0x000000ff);
array[2] = ((addr & 0x0000ff00) >> ;
array[3] = ((addr & 0x00ff0000) >> 16);
array[4] = ((addr & 0xff000000) >> 24);
Was hat man davon, wenn man eine Zahl oder eine adresse mit einer adresse verknuepft und dann durch 2^8 , 2^16 bzw 2^24 dividiert ?
Ich habe dieses stueck code bereits in vielen sources gefunden.
Vielleicht kann mir ja einer weiterhelfen
array
addr wird ein 4-Byte-Integer (Typ int oder long) sein. Der Programmierer möchte nun auf die Werte der 4 Bytes einzeln zugreifen können. Mittels &-Operator (bitweises UND) maskiert er alle Bits aus, die nicht zum jeweiligen Byte gehören. Jetzt muss er nur noch die Bits rechts-shiften, (>>), damit er auch nur Werte erhält, die in ein einzelnes Byte hineinpassen. Diese weist er dann den Array-Elementen zu., die wohl jeweils ein Byte gross sind (möglicherweise als char array[4] definiert).
Jochen
Jochen
Die grösste Lüge der EDV? "Mal eben..."