Bit verschieben in C

OP #887882
Lesenswert?
• ▲
▼
Hallo
Ich möchte mit einer Bitmaske von 01111111 mit einem Byte Array 
überprüfen wo sich eine 0 befindet. Ich überprüfe die Bytes mit einer 
Oder Funktion weiß aber nicht ob das funktioniert. Ich weiß auch nicht 
wie ich einzelne Bits in einem Byte durchschieben kann.

mfg
OP #887910
Lesenswert?
• ▲
▼
ja da stehts ja nur wie man portsbits verschiebt
was ist aber mit bytes
ich ja jetzt zum bsp ein byte a=0b10101111;
und eine bitmaske mit byte maske=0b0111111;

dann frag ich ab mit if((a | mask) == mask) ab ob sich an der stelle 
eine 0 befindet
jetzt weiß ich aber nicht wie ich die 0 weiter schiebe
#888517
Lesenswert?
• ▲
▼
Ob 1 oder 0 ist egal. Geschoben wird unabhängig vom Inhalt
1
  unsigned char a = 0b10101111;
2
  a >> 3;
Dann steht in a 0b00010101
Achtung bei "signed", wenn das erste bit eine "1" ist wird ne 1 
nachgeschoben und keine 0. Aus
1
  char a = 0b10101111;
2
  a >> 3;
wird dann 0b11110101.
Gast #890331
Lesenswert?
• ▲
▼
So hab jetzt noch ein anderes Problem.
Ich brauch jetzt statt einem byte array ein char array.

Kann ich bei einem char array auch die bitmanipulation anwenden?

z.B:

char a=0b01010101;
a |=(1<<5);

Geht das?


mfg
#890824
Lesenswert?
• ▲
▼
Erkläre mit mal den Unterschied zwischen byte und char! Für mich ist es 
beides 0x00-0xFF, also 8 Bit.

>char a=0b01010101;
Sieht mir nicht wie ein Array aus.
1
char a[]={0b01010101, 0b011001100, 0b11110000};
Das ist ein Array, aber auch da gehts natürlich.


>a |=(1<<5);

>Geht das?
Probiers doch aus, das kompilieren dauert doch nur ein paar ms.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.