Ich habe eine Zeile in c#, die lautet short sample = (short)(buffer[i] | (buffer[i + 1] << 8)); Was bedeutet das genau, was passiert im Bereich buffer[i] | (buffer[i + 1] << 8) ?
Welchen Typ hat buffer? Ich denke irgendetwas 8-bittiges (char) Da wird aus zwei 8-Bit Werten ein 16-Bit Wert gebastelt. Ein Wert wird um 8 Stellen nach Links verschoben (<<) und dann verodert ( | ).
Wenn ich ein sample habe und das in ein buffer[i] und ein buffer[i + 1] umwandeln will, welche Formel muß ich dann für buffer[i] und buffer[i + 1] nehmen?
Rinaldo Kolb schrieb: > var buffer = new byte[4096]; Passt doch 8-Bit. Von sample nach buffer:
1 | buffer[i] = sample & 0xff; // nur die unteren 8 Bit |
2 | buffer[i+1] = (sample >> 8) & 0xff; // nach rechts schieben und auch nur 8-Bit (die oberen) |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.