我想在C中编写一个代码,它生成一个随机整数,执行简单计算,然后我试图在IEEE标准中打印该文件的值。但我无法这样做,请帮忙。将C中的浮点数转换为IEEE标准
我无法用十六进制/二进制打印它,这非常重要。 如果我输入的值为fprintf
,我得到这个错误expected expression before double
。
int main (int argc, char *argv) {
int limit = 20 ; double a[limit], b[limit]; //Inputs
double result[limit] ; int i , k ; //Outputs
printf("limit = %d", limit); double q;
for (i= 0 ; i< limit;i++)
{
a[i]= rand();
b[i]= rand();
printf ("A= %x B = %x\n",a[i],b[i]);
}
char op;
printf("Enter the operand used : add,subtract,multiply,divide\n");
scanf ("%c", &op); switch (op) {
case '+': {
for (k= 0 ; k< limit ; k++)
{
result [k]= a[k] + b[k];
printf ("result= %f\n",result[k]);
}
}
break;
case '*': {
for (k= 0 ; k< limit ; k++)
{
result [k]= a[k] * b[k];
}
}
break;
case '/': {
for (k= 0 ; k< limit ; k++)
{
result [k]= a[k]/b[k];
}
}
break;
case '-': {
for (k= 0 ; k< limit ; k++)
{
result [k]= a[k] - b[k];
}
}
break; }
FILE *file; file = fopen("tb.txt","w"); for(k=0;k<limit;k++) {
fprintf (file,"%x\n
%x\n%x\n\n",double(a[k]),double(b[k]),double(result[k]));
}
fclose(file); /*done!*/
}
我所需要的值在文本文件中把它与我的硬件设计进行比较。另外,我是C的初学者。我什么都不知道 – chitranna 2013-03-06 04:31:00
一个类型转换语法是'(double)a [k]',但是你将一个double转换为double。大多数时候''%x''需要一个'unsigned int'和'sizeof(double)'可能与'sizeof(unsigned int)'不同。我建议:[Double to Hex string](http://stackoverflow.com/q/497472/260411) – 2013-03-06 04:52:03