C++ Dersleri | Bit Manipulasyon - En Sağdaki Set Edilmiş Biti Resetleme
Başlığın açıklayıcı olduğundan çok da emin olamadım :) Ancak durum şudur: 001 1 0000 şeklinde güzide bir bit dizemiz olsun: Amacımız bu bit dizesinde en sağda bulunan 1 'i tespit edip 0 yapmak : yani yukarıdaki arkadaşı şuna çevirmek istiyoruz: 001 0 0000 Kodumuz şu şekilde : template < typename T > T resetTheRightMostSetBit ( T n ) { return n & ( n - 1 ); } int main () { int a = 48 ; // 00110000 a = resetTheRightMostSetBit ( a ); // 00100000 -> 32 cout << " a= " << a << endl ; } Template konusunu henüz yazmadık, ileride yazdığım zaman buralara linkini bırakıyor olurum-unutursam bir yorumla hatırlatır mısınız bana? :) - bilmeyen arkadaşlarımız için: kısaca anlatalım yine de T bir typename dolayısıyla hemen altına yazdığımız fonksiyonun içine herhangi bir tipte veri gönderip aynı tipte geri dönüş yapabilmesini sağlıyoruz, yani bu fonksiyonu int için ayrı char için ayrı