avatar_ete

Matematik Operatörlerin Kullanımı

Başlatan ete, 25 Aralık 2011, 14:12:28

cemilsivas

Anladım hocam. Çok teşekkür ederim.

Man@41

Merhaba Arkadaşlar,
Forumdaki ilk yorumum :)
Dün bir kod sorunum vardı, bu başlıktaki bir bilgi ile çözdüm. Belki başkalarına da yararlı olur diye yazayım dedim.
16F84 PORTB'ye 2 adet 0...9 binary kodlayıcı bağlı. Amacım 00-99 arası gireceğim set değerine göre işlem saymak diyelim.
PORTB'nin üst 4 biti onlar hanesi, alt 4 biti birler hanesi oluyor.
Alt 4 bitte sorun yok ama üst 4 biti nasıl decimal onlar basamağı haline çevireceğim ?
Önce 8 bitlik değeri 11110000 ile maskeledim.
Sonra bu değeri > operatörü ile 4 defa sağa kaydırdım. Böylece üst 4 bit aslında alt 4 bit haline gelmiş oldu.
Sonra bu değeri 10 ile çarptım ve üstüne 00001111 ile maskelediğim alt 4 biti ekledim.
Çalışmadan sonra şunu anladım ; tek başına PBP komutlarını bilmek yeterli olmuyor, diğer bazı dilleri de bilmek gerekiyor.
Yıllar önce asm ile 6802 kodlardım ama mesela > operatörünün sayı kaydırdığını yeni öğrendim. Ya da diğer bazı matematik operatörlerinin varlığından haberim bile yok :)
Herkese selamlar...


ete

> operatörü kaydırma (sağa shift) yapmaz. >> operatörü bu işi yapar o işaretten iki tane kullanmalısın.

Yazdıklarını doğru biçimde yeniden yazıyorum.
SAYI=%oooobbbb  şeklinde olsun (oooo onlar basamağı binary değeri, bbbb birler basamağı binary değeri)
Birler=SAYI & %00001111 şeklinde birler basamağını direk çekeriz.
ONLAR =(SAYI & %11110000)>>4 şeklinde onlar basamağınıda çekmiş oluruz.
Tabiiki desimal bir sayı oluşturacak isen bunlarla;
SAYI=ONLAR*10+Birler şeklinde bir formül kullanman yeterli olacaktır.

Ete

Powered by EzPortal