Aşağıdakilere sahip olduğumu varsayalım
int susan = 2; //0010
int bob = 4; //0100
int karen = 8; //1000
ve bir yönteme parametre olarak 10 (8 + 2) geçiriyorum ve bunu susan ve karen anlamına gelecek şekilde çözmek istiyorum
10'un 1010 olduğunu biliyorum
ancak belirli bir bitin olduğu gibi kontrol edilip edilmediğini görmek için nasıl biraz mantık yapabilirim
if (condition_for_karen) // How to quickly check whether effective karen bit is 1
Şu anda tek düşünebildiğim, geçtiğim numaranın olup olmadığını kontrol etmek
14 // 1110
12 // 1100
10 // 1010
8 // 1000
Gerçek dünya senaryomda daha fazla sayıda gerçek bit olduğunda, bu pratik görünmüyor, sadece Karen için koşulu karşılayıp karşılamadığımı kontrol etmek için bir maske kullanmanın daha iyi bir yolu nedir?
İlgilendiğimden farklı olan bitleri netleştirmek için sola, sonra geri, sonra sağa, sonra geri kaydırmayı düşünebilirim, ancak bu aynı zamanda aşırı karmaşık görünüyor.