Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int controllo_hamming(int contatore, char *stringa, int i);
- int scomposizione(int contatore, char *stringa, int i);
- int scomposizione2(int contatore, char *stringa,int i,int stop);
- int scomposizione4(int contatore, char *stringa,int i,int stop);
- int scomposizione8(int contatore, char *stringa,int i,int stop);
- int scomposizione16(int contatore, char *stringa, int i);
- int main(){
- char stringa[25]="0110000001110111001110110";
- int contatore,cont[5],dim=25,parit=0,i=0;
- printf("Prova 1\n");
- cont[0]=scomposizione(contatore=0, stringa, i=0);
- /*cont[1]=scomposizione2(contatore=0, stringa, i=1, 0);
- cont[2]=scomposizione4(contatore=0, stringa, i=3, 0);
- cont[3]=scomposizione8(contatore=0, stringa, i=7, 0);
- cont[4]=scomposizione16(contatore=0, stringa, i=15);*/
- printf("2 \n");
- for(i=0;i<1;i++)
- printf("Controllo valore cont ---> %d \n",cont[i]);
- if(parit==1){
- if((cont[1]%2)==1) /* parita' dispari */
- printf("Bit di check 1 corretto");
- else{ /* paritΓ dispari */
- printf("Bit di check 1 errato");
- /*!*** Function Controllo bit finali ***!*/}
- }
- else{
- if(cont[1] %2 == 0)
- printf("Bit di check 1 corretto");
- else{
- printf("Bit di check 1 errato");
- /* !*** Function Controllo bit finali ***!*/}
- }
- return 0;
- }
- //Controllo per bit
- int controllo_hamming(int contatore, char *stringa, int i){
- if(stringa[i] == 1)
- contatore++;
- return contatore;
- }
- //Scomposizione per bit 1
- int scomposizione(int contatore, char *stringa, int i){
- int j;
- int rip=15; //Da automaticizzare
- for(j=0;j<rip;j+2)
- contatore = controllo_hamming(contatore, stringa, i+2);
- return contatore;
- }
- //Scomposizione per bit 2
- int scomposizione2(int contatore, char *stringa,int i,int stop){
- int j;
- int rip=3; //Da automaticizzare
- stop=rip; //Da automaticizzare
- for(j=0;j<2;j++){
- contatore = controllo_hamming(contatore, stringa, i+1);
- if(stop != 0)
- scomposizione2(contatore, stringa, stop-1,i+3);
- }
- return contatore;
- }
- //Scomposizione per bit 4
- int scomposizione4(int contatore, char *stringa,int i,int stop){
- int j;
- int rip=3,ripf=3; //Da automaticizzare
- stop=rip;
- for(j=0;j<3;j++)
- contatore = controllo_hamming(contatore, stringa,i+1);
- if(stop != 0)
- scomposizione4(contatore, stringa, i+5,stop-1);
- return contatore;
- }
- //Ricorsione per bit 8
- int scomposizione8(int contatore, char *stringa,int i,int stop){
- int j;
- int rip=3,ripf=7; //Da automaticizzare
- stop=rip;
- for(j=0;j<ripf;j++)
- contatore = controllo_hamming(contatore, stringa, i+1);
- if(stop != 0)
- scomposizione4(contatore, stringa,i+9,stop-1);
- return contatore;
- }
- //Controllo bit 16
- int scomposizione16(int contatore, char *stringa, int i){
- int j;
- int ripf=8; //Da automaticizzare
- for(j=0;j<ripf;j+1){
- contatore = controllo_hamming(contatore, stringa, i);
- i++;}
- return contatore;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement