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

frekans50

⁵⁰
Katılım
8 Ekim 2022
Mesajlar
1,016
İş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 üyeler

Forum istatistikleri

Konular
7,226
Mesajlar
122,344
Üyeler
2,918
Son üye
LostFearLess

Son kaynaklar

Son profil mesajları

Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top