其實我(可能)是一個「簡單」的問題。所以我不知道如何將有符號整數轉換爲無符號整數。C:轉換籤名爲無符號
我的代碼:
signed int entry = 0;
printf("Decimal Number : ");
scanf("%d", &entry);
unsigned int uEntry= (unsigned int) entry;
printf("Unsigned : %d\n", uEntry);
如果我無符號值發送到控制檯(見我最後的代碼行),我總是得到回一個有符號整數。
你能幫我嗎?
非常感謝!
親切的問候,親
嗨肯尼,謝謝你的回答。如果我設置了%u說明符,我將得到-13一個無符號值4294967283.問題是什麼。謝謝。 – bitsmuggler 2010-09-29 20:08:45
沒有問題。這是變量位的無符號表示。 – 2010-09-29 20:33:19
@pro:當您的格式說明符與要打印的值的類型不匹配時,行爲未定義,結果無意義。即當用'%u'打印'-13'時,結果是沒有意義的。以及您最初嘗試使用'%d'打印無符號值。如果您希望輸出有意義,請始終使用正確的格式說明符:'unsigned int'爲'%u','signed int'爲'%d'。 – AnT 2010-09-30 00:34:29