【发布时间】:2013-01-10 16:59:51
【问题描述】:
我正在尝试使用 C 编写基本练习,使用二进制和十六进制。我做了一个方法来打印 2 的倍数(2 的幂)和一个单独的方法来打印出 2 的倍数的十六进制形式。
#include <stdlib.h>
#include <stdio.h>
const char one = 1;
const int bits = 31;
void print2 ()
{
unsigned int u = (int)one;
unsigned int j;
printf("The powers of 2 are:\n");
for(j=0;j<bits;j++)
{
unsigned int temp = u<<j;
printf("%d\n",abs(temp));
printhex(temp);
}
printf("\n\n");
}
void printhex (unsigned int u)
{
printf("0x%08X\n",u);
}
int main ()
{
print2();
return(EXIT_SUCCESS);
}
我不明白为什么我在调用“printHex”方法时会收到“冲突类型”错误。我特别要求一个无符号整数,当我在参数中调用方法时(我假设它是无符号整数“temp”),编译器不接受。
【问题讨论】:
-
哪行代码给出了错误?
-
@LeorA 只有一行调用了 printHex。
标签: c binary hex type-conversion