Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: veliusta - 30 Ocak 2016, 21:52:37

Başlık: Eşitlik Operatörleri
Gönderen: veliusta - 30 Ocak 2016, 21:52:37
+= -= /=         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.
Başlık: Ynt: Eşitlik Operatörleri
Gönderen: Gökhan BEKEN - 30 Ocak 2016, 22:06:02
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.
Başlık: Ynt: Eşitlik Operatörleri
Gönderen: vitruvius - 30 Ocak 2016, 22:25:50
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 (http://"https://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Compound_assignment_operators") 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
Başlık: Ynt: Eşitlik Operatörleri
Gönderen: Andromeda - 30 Ocak 2016, 22:41:00
Amaç. kısa gösterim kullanıp hafızadan kazanmak mı?
Başlık: Ynt: Eşitlik Operatörleri
Gönderen: pea - 31 Ocak 2016, 00:39:40
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.