Hamming Code

Yeni Başlık Gönder Cevap Gönder « Önceki başlıkSonraki başlık »
 Yazar  Mesaj
goekhan-tr



Kayıt: 16.05.2008
Üye No: 122,621
Offline




Tarih: 01 Haziran 2008, 13:58 Tek mesaj gösterimi1

/*
*Programm: Hamming.java
*Beschreibung: Hamming-Code Kodierung, bzw. Dekodierung.
*
*Autor: Goekhan
*/
public class Hamming{

static String encode(String in){
System.out.print("Kodiere: ");
int[] result = new int[12];

if(in.length()!=Bunlar da ne{
System.out.println("gecersiz yada yanlis uzunluk!");
return null;
}
for(int x=0; x<in.length();x++){
if(in.charAt(x)!='0'&&in.charAt(x)!='1'){
System.out.println("gecersiz giris!");
return null;
}
}

result[2]=((int)in.charAt(0))-48; //b3
result[4]=(int)in.charAt(1)-48; //b5
result[5]=(int)in.charAt(2)-48; //b6
result[6]=(int)in.charAt(3)-48; //b7
result[8]=(int)in.charAt(4)-48; //b9
result[9]=(int)in.charAt(5)-48; //b10
result[10]=(int)in.charAt(6)-48; //b11
result[11]=(int)in.charAt(7)-48; //b12


result[0] = (result[2]+result[4]+result[6]+result[8]+result[10])%2; //=b1
result[1] = (result[2]+result[5]+result[6]+result[9]+result[10])%2; //=b2
result[3] = (result[4]+result[5]+result[6]+result[11])%2; //=b4
result[7] = (result[8]+result[9]+result[10]+result[11])%2; //=b8

for(int i=0; i<result.length; i++){
System.out.print(result[i]);
}

return "";
}

static String decode(String in){
System.out.print("Dekodiere: ");
int[] result = new int[12];
int[] c = new int[4];
int dez = 0;

if(in.length()!=12){
System.out.println("gecersiz yada yanlis uzunluk.");
return null;
}
for(int x=0; x<in.length();x++){
if(in.charAt(x)!='0'&&in.charAt(x)!='1'){
System.out.println("gecersiz giris!");
return null;
}
}

for(int x = 0; x<in.length(); x++){
result[x] = ((int)in.charAt(x))-48;
}

c[0] = (result[2]+result[4]+result[6]+result[8]+result[10])%2; //=c1
c[1] = (result[2]+result[5]+result[6]+result[9]+result[10])%2; //=c2
c[2] = (result[4]+result[5]+result[6]+result[11])%2; //=c4
c[3] = (result[8]+result[9]+result[10]+result[11])%2; //=c8

if(c[0] == result[0])c[0] = 0; else c[0] = 1;
if(c[1] == result[1])c[1] = 0; else c[1] = 1;
if(c[2] == result[3])c[2] = 0; else c[2] = 1;
if(c[3] == result[7])c[3] = 0; else c[3] = 1;

dez = c[3]*8+c[2]*4+c[1]*2+c[0];

if(dez==0){
String out = "";
out = out+result[2]+result[4]+result[5]+result[6]+result[8]+result[9]+
result[10]+result[11];

System.out.println(out+" aktarim dogrudur.");
}
else{
switch(dez){
case 1: case 2: case 4: case 8:
System.out.println(" Hatali Parity-Bit!"); return null;
}
System.out.println(" Bit "+dez+" hatali aktarim yapildi.");
}
return "";
}

public static void main(String[] args){
encode("01011010");
System.out.println("");
decode("000010101010");
}
}





_________________
Das Leben ist schön, wenn man nur wüßte, wie der davon genießen könnte Wink


ja tebja lublu Katii !
 Kullanıcı bilgilerini göster Özel mesaj gönder MSNM Alıntıyla Cevap Gönder Başa dön 
goekhan-tr



Kayıt: 16.05.2008
Üye No: 122,621
Offline




Tarih: 01 Haziran 2008, 14:01 Tek mesaj gösterimi2

hatayi bulan ve duzelten bir kod sistemidir. her veri icin ikinin kuvveti olan pozisyonlara parity bitleri yerlestirilir. bu sayede hatanin oldugu yer tesbit edilir. o yerdeki bit in tersi alinarak veri düzeltilir. bir veride iki hata olmussa dogru calismayabilir.. ramlerde kullanilan sistem budur.




_________________
Das Leben ist schön, wenn man nur wüßte, wie der davon genießen könnte Wink


ja tebja lublu Katii !
 Kullanıcı bilgilerini göster Özel mesaj gönder MSNM Alıntıyla Cevap Gönder Başa dön 
Mesajları göster:   
Yeni Başlık Gönder Cevap Gönder 1. sayfa (Toplam 1 sayfa) [Bu başlıkta 2 mesaj bulunuyor] « Önceki başlıkSonraki başlık »


Bu forumda yeni konular açamazsınız
Bu forumdaki mesajlara cevap veremezsiniz
Bu forumdaki mesajlarınızı değiştiremezsiniz
Bu forumdaki mesajlarınızı silemezsiniz
Bu forumdaki anketlerde oy kullanamazsınız
Bu foruma eklenti dosyaları gönderemezsiniz
Bu forumdaki dosyaları indiremezsiniz