Hızlı taban dönüşümü?

Katılım
8 Ekim 2022
Mesajlar
915
İşlemler mcu hafızasında yapılacak. Süre kritik

8 tabanında 3 basamaklı sayımız olsun
10luk tabana çevirmek kolay.

Basamak rakamlarını 1, 8, 64 ile çarparak topluyoruz. 2 nin katları olduğu için çarpma işlemi sola kaydırmak suretiyle yapılır.

Fakat 9 luk tabandaki sayıyı hızlıca çevirmek nasıl olacak? Kaydırmak olmuyor. 9 kuvvetini alarak nasıl çarpacağız? 8 haneli 9 tabanında sayı çevrilecek olsa.. süre çok uzar. Mcu zayıf. Çarpma işlemlerini sevmiyor.

Bu işin oluru nedir?

Screenshot_20241027_192406.jpg


Claude.AI bildiğimiz formülü hesaplayan kod çıkardı. Daha hızlısı gerekli.

9luk taban şart. Gizli proje : )
 
Son düzenleme:
Bu isin oluru yok.

2, 4, 8 gibi tabanlar ikili sistemde kolay islenir ama 9 icin yok.

Fakat lookup table ile 9un kuvvetlerini hazirda tutup bir miktar kolaylik saglayabilirsin.

Hatta 9un kuvvetlerinin 0...8 ile carpilmis sonuclarini saklamak da isleri cok hizlandirir.

Geriye sadece toplama isi kalir.
 
Son düzenleme:
0, 9, 18, 27, 36,45, 54, 63, 72
0, 81, 162, 243 ...... 648

123 9 lu sayisini 10'luya cevirelim.

1*9^2 + 2*9^1 + 3

Tablodan 81+ 18 + 3 =102 buluruz.

9lu sayinin basamak sayisi kac olursa olsun tabloda veriler cok fazla yer tutmayacaktir.
 
:tamam1
9kuvvet:
// 0..8 rakamlarin 9un kuvvetiyle çarpılmış hali
__code uint16_t kuvvet1[9] = {0, 9, 18, 27, 36, 45, 54, 63, 72};
__code uint16_t kuvvet2[9] = {0, 81, 162, 243, 324, 405, 486, 567, 648};
__code uint16_t kuvvet3[9] = {0, 729, 1458, 2187, 2916, 3645, 4374, 5103, 5832};
__code uint16_t kuvvet4[9] = {0, 6561, 13122, 19683, 26244, 32805, 39366, 45927, 52488};


....

sayi10luk = basamak0 + kuvvet1[basamak1]+ kuvvet2[basamak2]+...
 
Son düzenleme:

Çevrimiçi personel

Çevrimiçi üyeler

Forum istatistikleri

Konular
6,811
Mesajlar
116,026
Üyeler
2,772
Son üye
Burhan Öz

Son kaynaklar

Son profil mesajları

hakan8470 wrote on Dede's profile.
1717172721760.png
Dedecim bu gul mu karanfil mi? Gerci ne farkeder onu da anlamam. Gerci bunun anlamini da bilmem :gulus2:
Lyewor_ wrote on hakan8470's profile.
Takip edilmeye başlanmışım :D ❤️
Merhaba elektronik tutsakları...
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 :)
Back
Top