Binary to Decimal Conversion

Mikro Step

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

Forum istatistikleri

Konular
5,883
Mesajlar
100,355
Üyeler
2,491
Son üye
djkop

Son kaynaklar

Son profil mesajları

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.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top