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

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bit_manipulation_101 [2021/05/09 18:28] ptitfrapbit_manipulation_101 [2021/05/10 07:24] (Version actuelle) ptitfrap
Ligne 1: Ligne 1:
-OR: pour mettre un bit a 1+====== Bit Manipulation 101 ======
  
 +==== OR ====
 +pour mettre un bit a 1
 +<sxh cpp>
 X | 0 = X X | 0 = X
- 
 X | 1 = 1 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>
  
-AND: pour mettre un bit a 0+==== FLAG ==== 
 +<sxh cpp> 
 +uint8_t FLAGS = 0;
  
-X & 0 = 0+#define F_f1 0 
 +#define F_f2 1 
 +#define F_f3 2 
 +#define F_f4 3
  
-1 = X+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.1620577683.txt.gz · Dernière modification : 2021/05/09 18:28 de ptitfrap