Lowlevel
Lowlevel => Softwareentwicklung => Thema gestartet von: sebi2020 am 07. December 2009, 14:35
-
Wie kann man eigentlich in C & Assembler feststellen, ob ein bestimmtes Bit in nem Byte gesetzt ist?
Also wenn ich z.B. 0100 0111 habe. Wie kann ich in C UND Assembler rausfinden, ob z.B. Bit 6 gesetzt ist, oder nicht?
Liebe Grüße
Sebi2020
-
Du könntest dir eine Variable erstellen bei der nur das eine Bit gesetzt ist und damit verunden. Ist das bit nicht gesetzt kommt 0 (false) raus. Ist das bit gesetzt kommt ein Wert ungleich 0 (true) raus.
Beispiel:
int zahl = ...; // Dein Wert
int bit = 1 << n // Nur das n-te Bit ist 1, der Rest ist 0
if(zahl & bit)
// Bit ist gesetzt
else
// Bit ist nicht gesetzt
-
Also wenn ich z.B. 0100 0111 habe. Wie kann ich in C UND Assembler rausfinden, ob z.B. Bit 6 gesetzt ist, oder nicht?
In C: if (x & (1 << 6)) { ... }
In Assembler: test %eax, $0x40
jz foo
...
foo: