0

実際、私は(おそらく)「単純な」問題を抱えています。したがって、符号付き整数を符号なし整数にキャストする方法がわかりません。

私のコード:

signed int entry = 0;
printf("Decimal Number : ");
scanf("%d", &entry);
unsigned int uEntry= (unsigned int) entry;
printf("Unsigned : %d\n", uEntry);

符号なしの値をコンソールに送信すると (最後のコード行を参照)、常に符号付き整数が返されます。

手伝って頂けますか?

どうもありがとう!

よろしく、プロ

4

2 に答える 2

9
printf("Unsigned : %u\n", uEntry);
//                 ^^

指定子を使用して、が であることをランタイム%uに伝える必要があります。関数を使用すると、が期待されるため、入力を再解釈して符号付きの値に戻します。printfuEntryunsigned int%dprintfint

于 2010-09-29T19:39:27.977 に答える
1

コードの最後にこれらの 2 行を追加すると、何が起こっているのか理解できます。

printf("entry: signed = %d, unsigned = %u, hex = 0x%x\n", entry, entry entry);
printf("uEntry: signed = %d, unsigned = %u, hex = 0x%x\n", uEntry,uEntry,uEntry);
于 2010-09-30T00:30:35.907 に答える