質問

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

私のコード:

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

私は(私の最後のコード行を参照)、コンソールに符号なしの値を送信する場合、私は常に符号付き整数を取り戻すます。

あなたは私を助けることはできますか?

どうもありがとうございました!

種類のよろしく、プロ

役に立ちましたか?

解決

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

あなたは%uprintfであることuEntryランタイムを伝えるためにunsigned int指定子を使用する必要があります。あなたは%d printf機能を使用する場合はこれに署名値にご入力背中を再解釈、intを期待されます。

他のヒント

あなたのコードの末尾に

追加の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);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top