int main()
{
unsigned int un = 3000000000;
int verify= -1294967296;
printf("%d\n", un);//輸出 -1294967296;
printf("%u",verify);// 輸出3000000000;
getchar();
兩者輸出一樣,兩者的二進制編碼應該是一樣的。不一樣的數據類型寫入變量的二進制編碼方式不一樣;不同轉換說明有不同的轉換方式,先存入再轉換。
un 用unsigned int 寫入 用%d轉換說明轉換,
verify用int 寫入 用%ud轉換說明轉換,
//只要搞明白這兩個參數的關系就明白 了為什么這么輸出;
對於常量而言printf("%d\n", 0100);//整形存儲八進制100 但是寫入仍然是二進制,輸出 64
}