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

frekans50

⁹⁸⁷⁶⁵⁴³²¹⁰
Katılım
8 Ekim 2022
Mesajlar
1,112
İş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,442
Mesajlar
125,436
Üyeler
3,025
Son üye
can.ince

Son kaynaklar

Son profil mesajları

Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
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ı
Back
Top