Binary to Decimal Conversion

Mikro Step

Kıdemli Üye
Katılım
25 Eylül 2022
Mesajlar
3,989
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.)

D1D0SayimizAciklama
000000000001 0010Ilk islemler
000000000010 0100Tum degiskenleri 1 sola kaydirdik. (1. Kaydirma)
000000000100 1000Tum degiskenleri 1 sola kaydirdik. (2. Kaydirma)
000000001001 0000Tum degiskenleri 1 sola kaydirdik. (3. Kaydirma)
000000010010 0000Tum degiskenleri 1 sola kaydirdik. (4. Kaydirma)
000000100100 0000Tum degiskenleri 1 sola kaydirdik. (5. Kaydirma)
000001001000 0000Tum degiskenleri 1 sola kaydirdik. (6. Kaydirma)
000010010000 0000Tum degiskenleri 1 sola kaydirdik. (7. Kaydirma)
Dikkat D0 4 den buyuk
000011000000 00004 den buyuk degerlere 3 ekleyelim

000110000000 0000Tum degiskenleri 1 sola kaydirdik. (8. Kaydirma)
En son adimda 4 u astimi testi yapmiyoruz.
1818 olarak sonucu bulduk

Istediginiz kadar buyuk verilerle de calisabilirsiniz.

Algoritmanin adi Double dabble algoritmasi.

 
Şu dakkika yeni bir sistem buldum çok daha kolay

Diyelim 4 hanemiz var

Sayımız 1000 den büyük mü büyük ise 1000 çıkar 4. haneye +1 topla. satır başı
Değilse
Sayımız 100den büyük mi büyük ise 100 çıkar 3. haneye +1 topla satır başı
Değilse
Sayımız 10dan büyük mi büyük ise 10 çıkar 2. haneye +1 topla satır başı
Değilse
Son kalan sayıyı 1. haneye ver

Ben bunun kullanırım süper bir şey daha önce nasıl aklıma gelmedi.

Bu yeni bir icadım olabilir mi acaba :emindegil1:
 
32 bitlik bir sayiyi kac islemde yapabileceksin?
Bu tur islemlerde amac islemciyi en az yormak (hizli sekilde sonuca ulasmak)

Mesela unsigned 0xFFFFFFFF sayisi 4294967295 demek.

4 kere 1 milyar cikartacaksin.
2 kere 100 milyon cikartacaksin.
9 kere 10 milyon cikartacaksin.
4 kere 1 milyon cikartacaksin.
9 kere 100 bin cikartacaksin.
6 kere 10 bin cikartacaksin.
7 kere bin cikartacaksin.
2 kere yuz cikartacaksin.
9 kere on cikartacaksin.

Topla bakalim kac tane cikartma islemi yapacaksin?
 
Derleyiciler büyük ihtimalle bütün matematiksel pratikleri kullanarak yapıyordur diye düşünüyorum.
Küçük bir program yazarak hangisinin ne kadar sürede işledigini test ettinizmi?
 
Yapilan islemler belli oldugu icin ilave olarak deneysel test etmeye gerek yok gorunuyor.
 
32 bitlik bir sayiyi kac islemde yapabileceksin?
Bu tur islemlerde amac islemciyi en az yormak (hizli sekilde sonuca ulasmak)

Mesela unsigned 0xFFFFFFFF sayisi 4294967295 demek.

4 kere 1 milyar cikartacaksin.
2 kere 100 milyon cikartacaksin.
9 kere 10 milyon cikartacaksin.
4 kere 1 milyon cikartacaksin.
9 kere 100 bin cikartacaksin.
6 kere 10 bin cikartacaksin.
7 kere bin cikartacaksin.
2 kere yuz cikartacaksin.
9 kere on cikartacaksin.

Topla bakalim kac tane cikartma islemi yapacaksin?
Bence iyiymiş , double babble de 32bit sayıyı nasıl kaydıracaksın ? hatta 16bit sayıyı nasıl test edeceksin bayt bayt ilk iki byte test edersin sonraki desimal segmentler nasıl olacak 4.294.967.295 burada on tane hane var hafıza byte byte yapsan o da az işlem değil daha hızlı olduğu kesin ama bu yöntem de kullanılabilir kod küçük olur.
 
Son düzenleme:
Kullandigin islemciye gore degisir ama asm ile bu isler cok kolay.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
5,978
Mesajlar
101,946
Üyeler
2,514
Son üye
evrenbasaran

Son kaynaklar

Son profil mesajları

deneyci wrote on hakan8470's profile.
Sibonge uNkulunkulu ngokuhlukahluka asinike kona.

Bu hangi dil? :)
Lyewor_ wrote on taydin's profile.
Merhabalar. Elektrik laboratuvarınız varsa bunun hakkında bir konunuz var mı acaba? Sizin laboratuvarınızı merak ettim de :)
Lyewor_ wrote on taydin's profile.
Merhabalar forumda yeniyim! Bir sorum olacaktı lcr meterler hakkında. Hem bobini ölçen hemde bobin direnci ölçen bir lcr meter var mı acaba?
gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
Back
Top