Hallo zusammen,
ich möchte für ein Projekt eine VB.NET-Funktion (.NET Framework 4.8.1) schreiben, die mir n Bits eines Bytes zurückgibt. Die Startposition soll von der linken Seite aus angegeben werden. Das ist wichtig, da die Funktion auch von anderen Funktionen aufgerufen wird, und ich nun innerhalb dieses einen Bytes von links aus ein paar Bytes (nicht unbedingt bis zum Ende) lesen muss.
Beispiel 1:
0001 1111 (31)
Funktionsaufruf ReadBitsL(31, 3, 5) gibt 31 zurück, weil Position = 3 und numBits = 5 und die übergebene Zahl auch 31 ist.
Beispiel 2:
1110 0000 (224)
Funktionsaufruf ReadBitsL(224, 0, 3) gibt 224 zurück, weil Position = 0 und numBits=3 und weil die übergebene Zahl auch 224 ist.
Es gibt zwar viele Beispiele bei Google, aber alle geben was unterschiedliches zurück, sowohl von den Ergebnissen als auch vom Datentyp. Ich habe wenig Erfahrung mit Bitschieben und schätze eure Hilfe!
Dies ist mein bisheriger Versuch:
Viele Grüße
Bartosz
ich möchte für ein Projekt eine VB.NET-Funktion (.NET Framework 4.8.1) schreiben, die mir n Bits eines Bytes zurückgibt. Die Startposition soll von der linken Seite aus angegeben werden. Das ist wichtig, da die Funktion auch von anderen Funktionen aufgerufen wird, und ich nun innerhalb dieses einen Bytes von links aus ein paar Bytes (nicht unbedingt bis zum Ende) lesen muss.
Beispiel 1:
0001 1111 (31)
Funktionsaufruf ReadBitsL(31, 3, 5) gibt 31 zurück, weil Position = 3 und numBits = 5 und die übergebene Zahl auch 31 ist.
Beispiel 2:
1110 0000 (224)
Funktionsaufruf ReadBitsL(224, 0, 3) gibt 224 zurück, weil Position = 0 und numBits=3 und weil die übergebene Zahl auch 224 ist.
Es gibt zwar viele Beispiele bei Google, aber alle geben was unterschiedliches zurück, sowohl von den Ergebnissen als auch vom Datentyp. Ich habe wenig Erfahrung mit Bitschieben und schätze eure Hilfe!
Dies ist mein bisheriger Versuch:
Viele Grüße
Bartosz
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bartosz“ ()