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

frekans50

⁵⁰
Katılım
8 Ekim 2022
Mesajlar
1,040
İş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
Kod:
// 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:

Forum istatistikleri

Konular
7,285
Mesajlar
123,157
Üyeler
2,939
Son üye
Cano

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin 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