Sayı birleştirme hakkında

Başlatan Mucit23, 17 Ağustos 2010, 16:36:14

Mucit23

merhaba arkadaşlar sizlere danışmak istediğim bi konu var
şu şifreli kilit sistemleri hakkında
diyelimki 8 haneli bir şifre girilecek şifrenin 1234578 olduğunu varsayarsak bunu eprooma iki adet word değişkeni olarak kaydetmemiz gerekiyor peki 4x3 tuş takımından sırasıyla gelen tuş bilgilerini nasııl bu iki word değişkeninde toplamamız gerekiyor

mufitsozen

tuslardan gelen bilgileri 0,1,2,3,4,9,0xa,0xb olarak degerlendiriniz. Dolayisi ile her tus degeri 4 bit olarak gosterilebilir.

Simdi 2 tane 16 bitte 32 bit var, yani 32/4 8 rakam konabilir.

yani:

/* Digits[] = {0,1,2,3,4,5,6,7,8,9,10,11)*/

unsigned int8 Digits[8];
unsigned int32 Sifre;

int Ndx;

for (Ndx=0; Ndx<8; Ndx++){
/* Digits >= 0 <= 11 , eger supheniz varsa Digits[Ndx] yerine Digits[Ndx] % 12 yaziniz */
Sifre = (Sifre << 4) + Digits[Ndx];
}

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

RcALTIN

Alıntı yapılan: mucit23 - 17 Ağustos 2010, 16:36:14
merhaba arkadaşlar sizlere danışmak istediğim bi konu var
şu şifreli kilit sistemleri hakkında
diyelimki 8 haneli bir şifre girilecek şifrenin 1234578 olduğunu varsayarsak bunu eprooma iki adet word değişkeni olarak kaydetmemiz gerekiyor peki 4x3 tuş takımından sırasıyla gelen tuş bilgilerini nasııl bu iki word değişkeninde toplamamız gerekiyor

int sifre[8] = {1,2,3,4,5,6,7,8};
gelen tuşları bu şeklinde bir dizide topladınız diyelim;
int16 a,b,c,d;
int32 x,y;
a = make16(sifre[0], sifre[1]);
b = make16(sifre[2], sifre[3]);
c = make16(sifre[4], sifre[5]);
d = make16(sifre[6], sifre[7]);

x = make32(a,b);
y = make32(c,d);


şifre 2 adet değişkene toplanmış olur, yanlış anlamadıysam soruyu...
KİMSEYİ ENGELLEDİĞİM YOK, ÖZEL İLETİ DEVRE DIŞI !

Mucit23

Merhaba arkadaşlar. Aslında söylemeyi unuttum size ben basicde program yazıyorum. Daha bu işlerde biraz yeni olduğum için program algoritmam pek iyi değil. Yinede cevaplarınız için teşekkürler. Benim aklıma soyle bişey geldi diyelimki şifre adında 8 dizilik bir değişkenimiz olsun gelen tuş bilgilerini teker teker bu şifre değişkenlerine yükleyemezmiyiz. Sonra bunları teker teker eproma kaydederiz. Yada sizin bildiğiniz daha güzel bi yöntem yada bildiğiniz bi örnek kod  varmı ne önerirsiniz

muhittin_kaplan

birleştirme mucit gerek yok.
eeprom a yazdığın şifreyi ayrı ayrı değişkenlere yada diziye al. girilen şifreyiayrı ayrı değişkenlere yada dizilere koy sonra karşılaştır.

Mucit23

#5
Haklısın muhittin abi. Böylesi daha kolay olur gibime geliyor. Sonra hepsini tek tek eproma kaydederim. Bu tür projelerle gerçekten çok şey öğreniyorum. Bişey için program yazarken insan daha pratikleşiyor.  Bi anlamda kendi yağımda kavruluyorum. :)