無符號數和有符號數之間賦值和大小比較

unsigned int a = -1;html

printf("a = %d", a);函數

printf("a = %u", a);lua

int b = 3012345678;spa

printf("b = %d", b);htm

printf("b = %u", b);blog

輸出結果:繼承

a = -1class

a = 4294967295di

b = -1282621618co

b = 3012345678

說明:編繹器賦值時無論你是有符號仍是無符號,它眼中只有一個32位的存儲空間。給負數就按補碼的形式存,給正數就按原碼的形式存。至於讀的時候,你是解讀爲有符號仍是無符號,隨便你。

---------------------------------------------------------------------------------------------

int d = -1;

unsigned int e = 9999;

if (d > e)

    puts("- 1 > 9999");           //邪惡的代碼

else

    puts("9999 > -1");            //正義的代碼

輸出結果:

-1 > 9999

說明:邪惡打敗了正義,由於無符號和有符號兩個數比較時,會默認轉成無符號數,再進行比較。

-----------------------------------------------------------------------------------------------

C++小貼士:類的靜態函數能夠被繼承,但不能被重寫。

原文出處:https://www.cnblogs.com/heluan/p/10414340.html

相關文章
相關標籤/搜索