BinaryとHexを使用して、Cで基本的な練習を書こうとしています。2の倍数(2の累乗)を印刷する方法と、その2の倍数の16進形式を印刷する別の方法を作成しました。
#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"と想定)、コンパイラーは受け入れません。