我正在尝试使用 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”),编译器不接受。