我正在做一个程序来展示如何用二进制代码进行除法。
#include <stdio.h>
#include <stdlib.h>
unsigned int division(unsigned int a, unsigned int b) // fonction division
{
int i;
b = (b << 16);
for(i = 0; i <= 15; i++)
{
a = (a << 1);
if(a >= b)
{
a = a - b;
a = a + 1;
}
}
return a;
}
int main()
{
unsigned int i, a, b, d, N;
unsigned short c;
FILE* rep;
rep = fopen("reponse.txt", "w"); /* ouverture du fichier */
printf("Entrer le nombre de division a effectuer");
scanf("%i", &N);
printf("Veuillez inserer la ou les divisions a effectuer\n");
printf("de la facon suivante : a/b\n");
for(i = 1; i <= N; i++)
{
scanf("%i/%i", &a, &b); /* il suffira d'entrer a/b */
d = division(a, b); /* la division de a par b */
c = unsigned short(d); /* les 16 premiers bits */
d = (d >> 16); /* les 16 premiers bits */
fprintf(rep, "division %i : %i/%i = %d reste %i\n", i, a, b, c, d);
}
fclose(rep); /* fermeture du fichier */
return 0;
}
它error: expected expression before 'unsigned'
在这一行向我显示c = unsigned short(d);
我不知道到底是什么问题!有人能帮助我吗?我在 Code::Blocks 上的 Linux Ubuntu 12.10 编码下