C++ Dersleri | Bit İşlemleri - Bit Kopyalama

 C++ dersleri bit işlemlerinde bit kopyalama konusundayız, bit kopyalamaktan kastımız nedir bir kaynak bitimiz var onun değerini alıyoruz, hedef bitimize yazıyoruz : 0 ise 0, 1 ise 1:

int main()
{
	int source = 5;
	int target = 3;
	int number = 0b00100100; // 36
	number ^= (-source ^ number) & (1LL << target); // 0010 1100
	// target bitini source bitiyle aynı yapar.
	
	cout << "result=" << number << endl;
}

 result=44  çıktısını alıyoruz.

işlem yapacağımız değer 36 'ydı 5. bitin değerini 3. bite yazınca 44 olmuş oldu. Sırasıyla işlemlerimize bakmamız gerekirse: değişenlerin değerlerini yerine yazarak devam edelim : 

number = 36 ^  (-5 ^ 36) & (1 <<  3);

1 << 3 : 0000 1000b değerini elde ettik,

-5 ^ 36 : 1111 1011 ^ 0010 0100 -> 1101 1111b elde ettik,

bu iki değeri & liyoruz : 0000 1000b & 1101 1111b -> 0000 1000 elde ettik,

son olarak da 36 ile üst satırda elde ettiğimiz değeri Xor luyoruz:

0010 0100b ^ 0000 1000 -> 0010 1100 değeri de 44 e eşit

finalde olan 36 : 0010 0100b     0010 1100b 5. indekste olan biti 2. indekse yazdırmış olduk.

Herkese kolay gelsin!


Önceki konu :  C/C++ Bit Set ve Bit Clear

Sonraki konu : Bit Alanları - Gömülü Sistemler Bellek Organizasyonu


Hiç yorum yok:

Yorum Gönder

Türksat Saat Kanalı ve IRIG-B Time Code

Türksat Saat Kanalından Saat Bilgisi Nasıl Alınır? Uyduda kanalları dolaşırken, şu Türksat Saat kanalı hep dikkatimi çekmiştir. Özellikle  S...