6
我已經在無符號變量中分配了補碼值。爲什麼這個C程序輸出一個負數?
那麼爲什麼這個C程序輸出一個負數呢?
#include<stdio.h>
#include<conio.h>
int main()
{
unsigned int Value = 4; /* 4 = 0000 0000 0000 0100 */
unsigned int result = 0;
result = ~ Value; /* -5 = 1111 1111 1111 1011 */
printf("result = %d", result); /* -5 */
getch();
return 0;
}
您的問題應該是:「編譯此代碼時,爲什麼編譯器不會發出警告?」。答案是:「打開編譯器的警告(例如-Wall)」 – 2010-05-02 09:59:30