C++ Dersleri | Bit işlemleri - Bir Tamsayının 2'nin Kuvveti Olup Olmadığının Kontrol Edilmesi

 C++ dersleri bit işlemlerinde bir tam sayının 2 'nin kuvvetlerinden olup olmadığını kontrol edebilmek için bitwise operatörlerinden faydalanıyoruz :

int main()
{
	int number = 128;
	bool isPowerOfTwo = number && !(number & (number - 1));
	
	cout << "result=" << isPowerOfTwo << endl;
}

 result=1 

dikkat edilirse en sağdaki set biti resetleme konusuna, konunun genelinde ihtiyaç duyuluyor. Adım adım inceleyelim neler oluyor : 

128 : 1000 0000b en sağdaki set biti clear yaptığımız zaman değerimiz 0 oldu, yani false, başında ! not operatörü var bu da && operatörünün sağ tarafını true yaptı, sol tarafta da number 0 olmaması sebebiyle true döndürüyor, true && true sonucunda true dönmüş oluyor.

127 olsaydı değerimiz :

127 : 0111 1111b olacaktı, en sağdaki set biti clear yapınca : 0111 1110b ye dönüyor değerimiz : bu da true olarak değerlendirilir, başındaki not ! ile false olur, number true da olsa artık çıktımız false olmuştur.

Herkese kolay gelsin!

Önceki konu : Set Bitleri Sayma

Sonraki konu : Bit Clear ve Bit Set

Yorumlar

Bu blogdaki popüler yayınlar

Arduino IDE Kod Satır Numaraları Nasıl Açılır

DMD2TUR | Arduino P10 Led Panel için Türkçe Karakter Desteği | Arduino P10 Led panel Türkçe yazı yazma

P10 Led Panel Nasıl Sürülür - Arduino kod