Salve,
ho fatto un programma che dovrebbe convertire una serie di numeri decimali nei corrispondenti binari a 10 bit in notazione modulo e segno.
Non riesco assolutamente a capire perchè il programma funziona(bene) solo sul primo numero. Per esempio:
Uploaded with ImageShack.us
La parte di codice riguardante la conversione è il seguente;
codice:
void elabora(int dim, int dec[M], char str[][10])
{
int i,a,k,z;
for(i=0;i<dim;i=i+1) /*Inserisco il bit indicante il segno*/
{
if(dec[i]>=0)
{
str[i][0]='0';
}
else
{
str[i][0]='1';
}
}
for(i=0;i<dim;i=i+1) /*Azzero tutta la stringa*/
{
for(k=1;k<10;k=k+1)
{
str[i][k]='0';
}
str[i][10]='\0';
}
for(i=0;i<dim;i=i+1) /*effettuo la conversione vera e propria*/
{
z=9;
a=dec[i];
while((a/2)!=0)
{
if((a%2)==0)
{
str[i][z]='0';
}
else
{
str[i][z]='1';
}
a=a/2;
z=z-1;
}
str[i][z]='1';
}
}