Eşitlik Operatörleri

Başlatan veliusta, 30 Ocak 2016, 21:52:37

veliusta

+= -= /=         eşitlik operatörleri
|= ^= %=       eşitlik operatörleri
&= <<= >>=   eşitlik operatörleri

Bu komutlar nerede ve ne amaçla kullanılır? Türkçe kaynaklarda biraz araştırdım bir cevap bulamadım.

Gökhan BEKEN

#1
a+=5;
demek
a=a+5;
demektir. Diğerleri de aynı şekilde kullanılıyor.
Size tavsiyem kitaptan çalışın.


mesaj birleştirme:: 30 Ocak 2016, 22:07:24

Diğer yöntem ise, açın code:blocks'u işlemleri deneyerek anlamaya çalışın.
Özel mesaj okumuyorum, lütfen göndermeyin.

vitruvius

Bunlara Compound Assignment Operators denir.

Eşittiri oradan alıp başa, ifadedeki ilk terimi de eşitliğin sol tarafına yazarsanız aynı şey olur.

i <<= 4
i = i << 4  gibi

Buradan bakabilirsiniz.

#include <stdio.h>
#include <iostream>

int main()
{
	int num1 = 0x55;			// 0b01010101, 85
	int num2 = 0xCC;			// 0b11001100, 204
	
	num1 += 2;				// num1 = num1 + 2
	std::cout << num1 << "\n";		// 87

	num2 |= 0x55;				// num2 = num2 | 0b01010101
	std::cout << num2 << "\n";		// 01010101		0x55 ile
						// 11001100		num2'yi OR'larsak
						// 11011101, 0xDD, 221

	int num3 = 0x0F;			// 0b00001111, 15
	num3 <<= 4;				// num3 = num3 << 4
	std::cout << num3 << "\n";		// 0xF0, 0b11110000, 240
}


Programın çıktısı koddaki yorumlarda belirttiğim şekilde aşağıdaki gibi olacaktır.

Alıntı Yap87
221
240

Andromeda

Amaç. kısa gösterim kullanıp hafızadan kazanmak mı?
" Tanrı, iradesini hakim kılmak için yeryüzündeki iyi insanları kullanır, yeryüzündeki kötü insanlar ise kendi iradelerini hakim kılmak için Tanrı'yı kullanırlar." ..." Tanrı'dan mesaj gelmiyor, biz Tanrı'ya mesaj gönderiyoruz"

pea

Amaç zaman kazanmak ve okunabilirliği arttırmak.
x=x+1 ile x++ ya da x+=1'in bir farkı yok. Compiler çok kötüyse farklı olabilir ama tüm düzgün compiler'lar aynı assembly kodunu üretir bu 3 ifade için.