Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Diğer => Konuyu başlatan: LukeSkywalker - 29 Ocak 2023, 16:52:33

Başlık: Hafıza çipine Tel. No Kaydetme.
Gönderen: LukeSkywalker - 29 Ocak 2023, 16:52:33
Arkadaşlar merhaba.

Bir hafıza çipine 10 haneli bir telefon numarasını (örn. 561 999 99 99) en düşük boyutta yer kaplayacak şekilde nasıl kaydedebilirim? Her numara için 4 byte kadar yer ayırmak kolay fakat bunu daha da sıkıştırabilir miyiz merak ediyorum. Fikirlerinizi belirtirseniz sevinirim.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: Sozuak - 29 Ocak 2023, 22:21:23
Çok fayda sağlamaz belki ama 5xx kısmındaki 5 sabit onu atabilirsin. Numaraları da ardışıl yazarsın
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: alikeskinkilic - 30 Ocak 2023, 08:57:45
en sıkıştırılmış hali bcd şeklinde değil standart byte şeklinde sıralı kaydedersiniz çözerken bcd ye çevirirsiniz gerekiyorsa
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: kimlenbu - 30 Ocak 2023, 11:41:20
Delta encoding diye aratırsanız belki işinize yarayabilir. Ama kazanacağınızdan daha fazla alanı yazacağınız compress/decompress fonksiyonlarıyla flash'tan kaybedersiniz.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: serdararikan - 30 Ocak 2023, 12:56:38
32 bit integer olarak kaydetmek en uygun çözüm gibi görünüyor
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: LukeSkywalker - 30 Ocak 2023, 19:14:08
Alıntı yapılan: alikeskinkilic - 30 Ocak 2023, 08:57:45en sıkıştırılmış hali bcd şeklinde değil standart byte şeklinde sıralı kaydedersiniz çözerken bcd ye çevirirsiniz gerekiyorsa

Bu şekilde yaparak 4 byte'a kadar düşürebildim.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: LukeSkywalker - 30 Ocak 2023, 19:22:00
Alıntı yapılan: serdararikan - 30 Ocak 2023, 12:56:3832 bit integer olarak kaydetmek en uygun çözüm gibi görünüyor

Baştaki 5'i atarak (99 999 99 99) bu şekilde yaptığımızda 4 byte oluyor.
Fakat 536,532 gibi operatör kodlarını tek hane ile kodlarsak (örneğin 542=0, 532=1 vs.) toplam 30 tane operatör kodu olduğu için yine 4 byte oluyor.

Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: Andromeda - 30 Ocak 2023, 19:28:04
Mutlaka bir hafıza ya bir tane sayı gelecek..Kuantum bilgisayar olsa olurdu belki..ama ne çare :)
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: LukeSkywalker - 30 Ocak 2023, 22:03:00
Bu sekilde 4 byte olarak kaydedersem, 1Mbit bir flasha 32768 adet tel no kaydedilebiliyor. Bu şekilde yapacağım o zaman. Teşekkürler herkese.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: ilyas KAYA - 30 Ocak 2023, 22:19:40
www.robotistan.com/mikro-sd-kart-modulu-1?
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: elektronik_0 - 30 Ocak 2023, 22:42:01
Alıntı yapılan: LukeSkywalker - 30 Ocak 2023, 19:22:00Baştaki 5'i atarak (99 999 99 99) bu şekilde yaptığımızda 4 byte oluyor.
Fakat 536,532 gibi operatör kodlarını tek hane ile kodlarsak (örneğin 542=0, 532=1 vs.) toplam 30 tane operatör kodu olduğu için yine 4 byte oluyor.



Her bir 9 ifadesi için 4 bit gerekmiyor mu?

5'i atınca (99 999 99 99) oluyor.

9 tane 9 var. 36 bit oluyor. 4 byte'a nasıl sığıyor?
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: mehmet - 31 Ocak 2023, 01:09:15
(https://i.ibb.co/xmG9Mmf/Screenshot-20230131-010753-com-miwachang-progcalc.jpg) (https://ibb.co/ZHK4hHY)
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: CLR - 31 Ocak 2023, 02:22:50
huffman encoding ve decoding kullanabilirsin veya LZ77 veya her ikisini ama birkaç KB ram ister,
Mesela ben GSM projesinde kullandım, 1208 byte'lık stringi huffman ile, 836byte'a indirdim, 372byte yer kazancı sağladı, (%30 kazanç)
Sonra LZ77 ile compress ettim bu defa toplam da 699 byte sıkıştırdı. (%57 kazanç)

Tabii herşeyin bir bedeli var, daha fazla sram ve daha fazla işlem gücü gerekir.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: yas - 31 Ocak 2023, 12:45:00
Alıntı yapılan: LukeSkywalker - 29 Ocak 2023, 16:52:33Arkadaşlar merhaba.

Bir hafıza çipine 10 haneli bir telefon numarasını (örn. 561 999 99 99) en düşük boyutta yer kaplayacak şekilde nasıl kaydedebilirim? Her numara için 4 byte kadar yer ayırmak kolay fakat bunu daha da sıkıştırabilir miyiz merak ediyorum. Fikirlerinizi belirtirseniz sevinirim.

Eğer ilk rakam her zaman gsm operatörlerinin ön tanımlı numaraları ile başlayacaksa 312,212,216,416 gibi şehirler arası alan kodları kullanılmayacaksa, TTxxxxxxxx şeklinde 29 bite saklanabilir. Buda yaklaşık 10% yer tasarrufu sağlar. Fakat harcanacak efora değer mi emin olamadım. Diyelim ki 32 bitlik saklama ile 150 numara tutulacak alan 150x32=4800 bit yer işgal ederken aynı alana 29 bit olarak kaydedildiğinde yaklaşık 165 adet telefon numarası saklanabilir.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: CLR - 31 Ocak 2023, 23:10:18
Bu tür data sıkıştırma, saklama alanından daha çok RF, GSM haberleşmelerinde kullanılır, böylece daha az yayınım (gsm için data boyutu eşittir masraf), daha fazla enerji tasarrufu sağlar. Yoksa 1Mbit flash yerine yaklaşık aynı fiyata 2-4Mbit bulabilirsin.
Başlık: Ynt: Hafıza çipine Tel. No Kaydetme.
Gönderen: alikeskinkilic - 31 Ocak 2023, 23:37:00
Alan kodlarını tablo olarak sakla geri kalanını dec.