Mikro Step
Kıdemli Üye
- Katılım
- 25 Eylül 2022
- Mesajlar
- 5,895
C de printf ile bir degiskenin icerigini kolayca BCD'ye cevirip displeyde vs gosterebiliyoruz.
Bu baslikta amacimiz bu islemi low level yapmak.
Ornegin bir islem yaptigimizda sonucu 0x12 olarak bulduk ve bunu gostergede 10'lu sistemde gosterecegiz.
0x12 sayisi displeyde 18 olarak gormemiz gerekir.
D1 ve D0 adinda iki degisken aliyoruz. 12 sayisi kucuk oldugu icin 2 degisken aldim. (Normalde 3 degisken almaliyiz.)
Istediginiz kadar buyuk verilerle de calisabilirsiniz.
Algoritmanin adi Double dabble algoritmasi.
Bu baslikta amacimiz bu islemi low level yapmak.
Ornegin bir islem yaptigimizda sonucu 0x12 olarak bulduk ve bunu gostergede 10'lu sistemde gosterecegiz.
0x12 sayisi displeyde 18 olarak gormemiz gerekir.
D1 ve D0 adinda iki degisken aliyoruz. 12 sayisi kucuk oldugu icin 2 degisken aldim. (Normalde 3 degisken almaliyiz.)
D1 | D0 | Sayimiz | Aciklama |
0000 | 0000 | 0001 0010 | Ilk islemler |
0000 | 0000 | 0010 0100 | Tum degiskenleri 1 sola kaydirdik. (1. Kaydirma) |
0000 | 0000 | 0100 1000 | Tum degiskenleri 1 sola kaydirdik. (2. Kaydirma) |
0000 | 0000 | 1001 0000 | Tum degiskenleri 1 sola kaydirdik. (3. Kaydirma) |
0000 | 0001 | 0010 0000 | Tum degiskenleri 1 sola kaydirdik. (4. Kaydirma) |
0000 | 0010 | 0100 0000 | Tum degiskenleri 1 sola kaydirdik. (5. Kaydirma) |
0000 | 0100 | 1000 0000 | Tum degiskenleri 1 sola kaydirdik. (6. Kaydirma) |
0000 | 1001 | 0000 0000 | Tum degiskenleri 1 sola kaydirdik. (7. Kaydirma) Dikkat D0 4 den buyuk |
0000 | 1100 | 0000 0000 | 4 den buyuk degerlere 3 ekleyelim |
0001 | 1000 | 0000 0000 | Tum degiskenleri 1 sola kaydirdik. (8. Kaydirma) En son adimda 4 u astimi testi yapmiyoruz. |
1 | 8 | 18 olarak sonucu bulduk | |
Istediginiz kadar buyuk verilerle de calisabilirsiniz.
Algoritmanin adi Double dabble algoritmasi.