MasterEvil
Erfahrenes Mitglied
So .. da bin ich schon beim nächsten Problem
also ich muss folgenden C# Code nach Java portieren:
UInt32 sync = 0;
byte buffer; (wird woanders gefüllt);
sync = sync>>8 | (UInt32)buffer<<24;
if ((sync & 0x00ffffff) == 0x00010000)
int syncId = (int)((sync>>24) & 0xff);
Das Problem, Java hat kein unsigned int also muss ich mir hier etwas anderes überlegen.
Verschlimmernd hinzu kommt das ich noch nicht ganz checke was hier passiert.
Ich versuch mal so weit wie ich es verstehe, also sync ist 32 Bits groß, buffer ist 8 Bits groß.
(UInt32)buffer<<24 ...... was macht diese Zeile?
Es entsteht ein neues Object mit 32 Bit, die <<24 verschiebt die Bits um 24 nach vorne?
Bedeutet das, dass das ehemalige Byte jetzt einfach nur vorne steht?
Was bewirkt der Oder Operator? Die Bits werden ODER verknüpft, was heißt das?
Dann das: sync & 0x00ffffff ..... da wird doch bestimmt nur die Hexzahl mit den vorhandenen Bits addiert und anschließend mit einer anderen Hexzahl verglichen. sync hat doch aber 32 Bit und die Hexzahl steht doch nur für 8 Bit oder? Was wird denn da genau addiert und verglichen oO
Währe super wenn mir auch hier wieder jemand helfen kann, wegen dem 32 Bit unsigned Int, gibt es da schon fertige Klassen die soetwas imulieren?
also ich muss folgenden C# Code nach Java portieren:
UInt32 sync = 0;
byte buffer; (wird woanders gefüllt);
sync = sync>>8 | (UInt32)buffer<<24;
if ((sync & 0x00ffffff) == 0x00010000)
int syncId = (int)((sync>>24) & 0xff);
Das Problem, Java hat kein unsigned int also muss ich mir hier etwas anderes überlegen.
Verschlimmernd hinzu kommt das ich noch nicht ganz checke was hier passiert.
Ich versuch mal so weit wie ich es verstehe, also sync ist 32 Bits groß, buffer ist 8 Bits groß.
(UInt32)buffer<<24 ...... was macht diese Zeile?
Es entsteht ein neues Object mit 32 Bit, die <<24 verschiebt die Bits um 24 nach vorne?
Bedeutet das, dass das ehemalige Byte jetzt einfach nur vorne steht?
Was bewirkt der Oder Operator? Die Bits werden ODER verknüpft, was heißt das?
Dann das: sync & 0x00ffffff ..... da wird doch bestimmt nur die Hexzahl mit den vorhandenen Bits addiert und anschließend mit einer anderen Hexzahl verglichen. sync hat doch aber 32 Bit und die Hexzahl steht doch nur für 8 Bit oder? Was wird denn da genau addiert und verglichen oO
Währe super wenn mir auch hier wieder jemand helfen kann, wegen dem 32 Bit unsigned Int, gibt es da schon fertige Klassen die soetwas imulieren?