Bonjour
voici une parti de mon projet(reseau)cette parti vous montre la conversion en binaire d'une chaine de carctere et réciproquement a propos de la probabilite tu peut l'enlever (pour mon code met la probabilite a 99)
Donc tu doit réctifier le code en enlevant la probabilite et tu met le codage sur 8 bit
bon chance.
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<math.h>
int t[100],v=0,t2[100];
void codebinaire(char s[])
{
int i,a,t1[100],t2[100],j=0,k=0,temp,p=0,w=0,b,ss,f;
double x,z;
char chr,message;
for(i=0;i<strlen(s);i++)
{
a=s[i];//affectation cert a determiner le code ascii afin du calculer le code binaire
printf("le code ASCII de %c est %d \n",s[i],a);
while(a>0)//determination du code binaire
{
t1[j]=a%2;
a/=2;
j++;
}
for(p=j-1;p>j/2;p--)//invertion du tableau pour obtenir le code binaire correcte
{
temp=t1[p];
t1[p]=t1[k];
t1[k]=temp;
k++;
}
k=0;
for(j=v;j<v+7;j++)//stockage du code binire d'un caractere dans le tableau globale
{
t[j]=t1[w];
w++;
}
w=0;
j=0;
v+=7;
}
printf("\n le code binaire de votre message est \n");
for(i=0;i<v;i++)
{
printf("%d",t[i]);
}
}
void prob(double x)
{
int i,b;
double z;
printf("\n votre probabilite est %.2lf %%\n",x);
printf("\n votre nouvelle probabilite est %.0lf\n ",x*100);
printf("les valeure aleatoires sont\n");
for(i=0;i<v;i++)
{
z=rand()*100;
while((z>=10000)||(z<1))
{
z=rand()*100;
}
b=z;
printf("%d ",b);
if(x*100>=b)
t2[i]=t[i];
else
{
if(t[i]==0)
t2[i]=1;
else
t2[i]=0;
}
}
printf("\n le message apres la modification :\n");
for(i=0;i<v;i++)
{
printf("%d",t2[i]);
}
}
void decod()
{
int p,j,ss,i,f,k;
printf("\n*****decodage du message binaire*****\n");
p=j=ss=i=f=0;
k=7;
while(i<v)
{
for(j=p;j<p+7;j++)
{
ss+=t2[j]*pow(2,k-1-f);
f++;
}
printf("%c",ss);
p+=7;
i=p;
ss=f=0;
}
printf("\n");
}
void main()
{
double x;
char s[100];
printf("entrer une chaine de caractere ");
gets(s);
printf("string est %d\n",strlen(s));
codebinaire(s);
printf("\n entrer la probabilite que le message arrive correcte \n");//le probabilite enterer sera arrondi si elle de valeure relle
scanf("%lf",&x);
prob(x);
decod();
}