Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

CCS çarpma işlemi

Başlatan cihanogluts, 10 Mart 2017, 21:12:31

cihanogluts

S.a beyler. Şöyle bir Sorunla karşılaştım.
int8 hiz=100;
int16 ay=0;

ay=50000-hiz*140;
dediğimde çarpma sonucu yanlış çıkıyor.
hiz değişkeninide int16 yapınca sonuç doğru oluyor.
ccs de int8 ile int16  değişkenleri çarpılmıyormu ?

Murat Mert


unsigned int16 ay=0; /// yap sıkıntı olursa
ay=(unsigned int16)(50000-(hiz*140));
mert07

vitruvius

Buradaki sıkıntı şu. Çarpma işlemi önce yapılıp sonra atama işlemi yapılır. Yani yazdığın kod aslında şu şekilde çalışıyor:

int8 hiz=100;
int8 vit =50000-hiz*140;

int16 ay = vit


CCS C'de int8 -128 ile 127 arasında değer alıyor. Sen o çarpma işlemini yaptığında da haliyle overflow oluşuyor. Çarpma işlemini yaparken cast işlemi yapmalısın.

cihanogluts

Teşekkürler sorunum çözüldü :)

Murat Mert

Hadi bakalım kolay gelsin  ;)
mert07

vardal57