* Kayıt Ol

* Oturum Aç

* Forum Kılavuzu

  
Sistem saati: 08 Eyl 2010, 09:31

Powarm.com » Forum anasayfası » Yazılım » KEIL, IAR,

Tüm zamanlar UTC + 2 saat [ DST ]


Keil de <<



Yeni konu gönder Konuya cevap yaz  1 sayfadan 1. sayfa
 [ 5 ileti ] 
  Yazıcı görüntüsü Önceki konu | Sonraki konu 
Yazar Mesaj
Ziya
 İleti başlığı: Keil de <<
İletiTarih: 11 Arl 2009, 14:34 
Müdavim
Kullanıcı avatarı

Kayıt: 23 Nis 2008, 17:20
İleti: 204
Konum: Ankara
Keil MDK4
Şöyle bir işlem yaptım:

Kod:
  unsigned int t1, t2;
  signed int t3;

  t1=0x50;
  t2=0x05;
  t3=t1+t2;       // sonuç 0x55 beklendiği gibi
  t3=(t1<<8)+t2;// sonuç 0x5005 beklendiği gibi
  t3=t1<<8+t2;  // sonuç debug ekranında 0x000A0000 görünüyor.

t3=t1<<8+t2; satırın sonucu bir üstteki gibi olması gerekmez mi?


 Profile bak  
 
Analyzer
 İleti başlığı: Re: Keil de <<
İletiTarih: 11 Arl 2009, 15:03 
Üye

Kayıt: 25 Nis 2008, 10:37
İleti: 6
Ziya yazdı:
Keil MDK4
Şöyle bir işlem yaptım:

Kod:
  unsigned int t1, t2;
  signed int t3;

  t1=0x50;
  t2=0x05;
  t3=t1+t2;       // sonuç 0x55 beklendiği gibi
  t3=(t1<<8)+t2;// sonuç 0x5005 beklendiği gibi
  t3=t1<<8+t2;  // sonuç debug ekranında 0x000A0000 görünüyor.

t3=t1<<8+t2; satırın sonucu bir üstteki gibi olması gerekmez mi?

Selam,

Bir üstteki gibi olmaz çünkü toplama işlemi shl işleminden daha önceliklidir. Bunu ispat için 8+5 kadar 0x50 sayısını shl yapın, A0000 sonucunu elde edersiniz. Parantez koyarsanız düzelir.

Analyzer

Edit : İmla


 Profile bak  
 
Ziya
 İleti başlığı: Re: Keil de <<
İletiTarih: 11 Arl 2009, 15:33 
Müdavim
Kullanıcı avatarı

Kayıt: 23 Nis 2008, 17:20
İleti: 204
Konum: Ankara
:) Gerçekten öncelik aritmetik işlemlerdeymiş. Paslanmaya başlamışım :) aklımda ++i önceliği gibi kalmış.


 Profile bak  
 
gerbay
 İleti başlığı: Re: Keil de <<
İletiTarih: 11 Arl 2009, 16:56 
Üye

Kayıt: 22 Şub 2009, 15:18
İleti: 84
Konum: Ankara
aslında dalgınlıkla bug yapmamak için parantez kullanmayı alışkanlık haline getirmek lazım. çok basit şeylerde bile parantez kullanmak lazım ki alışkanlık haline gelsin. Ben %100 emin olduğum durumlarda bile parantezi her zaman kullanıyorum. sonuçta üretilen kodu etkileyen bir durum olmuyor. sizlere de bu tip şeyleri alışkanlık haline getirmenizi öneririm


 Profile bak  
 
Ziya
 İleti başlığı: Re: Keil de <<
İletiTarih: 11 Arl 2009, 17:08 
Müdavim
Kullanıcı avatarı

Kayıt: 23 Nis 2008, 17:20
İleti: 204
Konum: Ankara
Evet haklısınız. Biraz zahmet çekmek zarar vermez :)

Bu gün bir de if(sayi) .... hatalı çalıştığını gördüm. onun yerine if (sayı==0) ... else ... yazdım. Bazı şeyleri dalgınlıkla atlıyoruz. İşletme Körlüğü oluşuyor (işletmelerde yapılan işlerin doğru olduğunu varsayan bir deyim).


 Profile bak  
 
Önceki iletileri göster:  Sıralama  
Yeni konu gönder Konuya cevap yaz  1 sayfadan 1. sayfa
 [ 5 ileti ] 

Powarm.com » Forum anasayfası » Yazılım » KEIL, IAR,

Tüm zamanlar UTC + 2 saat [ DST ]


 Kimler çevrimiçi

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir


Bu forumda yeni konular açamazsınız
Bu forumda konulara cevap yazamazsınız
Bu forumda kendi iletilerinizi değiştiremezsiniz
Bu forumda kendi iletilerinizi silemezsiniz

Git:  
 

Valid CSS!

Valid XHTML 1.0 Transitional
Powered by phpBB Group
phpBB3 Türkçe: phpBB Türkiye