C# -Problem (Bitoperation)

Gast #538648
Lesenswert?
• ▲
▼
Hallo,
ich bin ein C#-Anfänger und habe folgendes Problem:

Wenn ich folgenden Code kompilieren will,
1
byte datum = 0;
2
byte bitNummer = 5;
3
datum |= (1 << bitNummer); // entsprechendes Bit setzen

bekomme ich die fehlermeldung:
Der Typ "int" kann nicht implizit in "byte" konvertiert werden. Es ist 
bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt 
eine Umwandlung.

Vieleich ist jemand der sich in C# besser auskennt als ich, bereit, mir 
zu erkären was ich falchh gemacht habe bzw. wie ich es richtig mache.
Gast #538681
Lesenswert?
• ▲
▼
>>(1 << bitNummer)
schau dir mal an was der ergebnistyp einer shift operation ist, könnte 
das int sein? Wenn ja c# weigert sich einen größeren Typ implizit in 
einen kleineren umzuwandeln, da dabei etwas vorloren gehen könnte. Ich 
sehe keine explizite Konvertierung.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren