bit_test Funktion

Gast #1391121
Lesenswert?

so vielleicht?
1
byte bit_test(byte b,byte n )
2
{
3
  if ( n > 7 ) return 0;
4
  return byte & (1<<n);
5
}
6

7

8

9
byte bit_set(byte b ,byte n )
10
{
11
  if ( n > 7 ) return byte;
12
  return byte | (1<<n);
13
}
Gast #1391176
Lesenswert?

Aus Kompatibilitätsgründen würd ichs immer so machen:

Bit setzen:   b |= (1<<n);
Bit löschen:  b &= ~(1<<n);
Bit abfragen: if ( b & (1<<n) )  {...}

Ist leicht lesbar und 100% kompatibel, da Standard-C. Also keine 
Bibliotheken nötig!
Gast #1391266
Lesenswert?

Nein.

Du solltest aber besser die " byte |= (1 << bit) " Schreibweise 
verwenden und nicht die Funktionen. Ein vernünftiger Compiler (gibts 
sowas für PIC12/16/18?) macht daraus eine einzelnen Assembler Anweisung. 
Die bit_xxx() Funktionen werden ja gerade deshalb vom Compiler 
bereitgestellt weil sie Probleme haben solche Situationen zu erkennen.

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