Outils pour utilisateurs

Outils du site


bit_manipulation_101

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
bit_manipulation_101 [2021/05/09 17:57] – créée ptitfrapbit_manipulation_101 [2021/05/10 07:24] (Version actuelle) ptitfrap
Ligne 1: Ligne 1:
-OR: +====== Bit Manipulation 101 ====== 
-X | 1 = 1+ 
 +==== OR ==== 
 +pour mettre un bit a 1 
 +<sxh cpp>
 X | 0 = X X | 0 = X
 +X | 1 = 1
 +</sxh>
 +==== AND ==== 
 +pour mettre un bit a 0
 +<sxh cpp>
 +X & 0 = 0
 +X & 1 = X
 +</sxh>
 +==== SNIPPETS ====
 +<sxh cpp>
 +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) 
 +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) 
 +</sxh>
 +
 +==== FLAG ====
 +<sxh cpp>
 +uint8_t FLAGS = 0;
 +
 +#define F_f1 0
 +#define F_f2 1
 +#define F_f3 2
 +#define F_f4 3
 +
 +sbi(FLAGS,f1) //Set FLAG
 +
 +if (FLAGS & _BV(F_f1)) //si flag ON
 +
 +if (!(FLAGS & _BV(F_f2))) //si flag OFF
 +
 +cbi(FLAGS,F_f1) //Clear Flag
 +</sxh>
 +
 +
bit_manipulation_101.1620575870.txt.gz · Dernière modification : 2021/05/09 17:57 de ptitfrap