我在做一個程序,演示如何在二進制代碼中進行除法。C中的除法程序
#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);
我不知道到底出了什麼問題! 有人可以幫我嗎?我是在Linux操作系統Ubuntu 12.10編碼上的代碼::塊
在這一行中打算做什麼c = unsigned short(d);? – 2013-03-16 21:30:05
簡單地將一個整數轉換成一個短值不會給你前16位。 嘗試使用結構來保留餘數。我不是法國人,所以不知道你想達到什麼目的。 – flyingOwl 2013-03-16 21:30:16
C'est pas cool les commentaires enfrançaispour lacommunauté... division ==> – Aubin 2013-03-16 21:30:17