兩個數相加是否大於第三個數
數的範圍是 [−263,263]
int 型別的資料長度是4位元組也就是32位,可表達範圍為[±231-1]
long long型別的資料長度是8位元組也就是64位,可表達範圍為[±263-1]
可以看出,long long型別可以用於承擔三個數字,但是如果碰到了兩個邊界數,就可能會出現溢位,如果是兩個正數相加會導致上溢位,a > 0, b > 0但a + b < 0;相反兩個負數相加會導致a < 0, b < 0但a + b > 0 (計算機組成原理第六章的內容)
所以可以先判斷res = a + b 和 a, b直接的正負關係,再去比較
#include
intmain()
else
i++;}
}
C 資料型別和位元組長度
bool system.boolean 布林型,其值為 true 或者 false byte system.byte 位元組型,佔 1 位元組,表示 8 位正整數,範圍 0 255 sbyte system.sbyte 帶符號位元組型,佔 1 位元組,表示 8 位整數,範圍 128 127 char...
C C 資料型別長度
我們在編寫 c c 時肯定希望在32位和64位系統都能正常執行,那麼我們就需要注意基本資料型別的長度在32位與64位中的變化 另外這種變化還與編譯器相關。64位 gcc 是 lp64 即 long 和 pointer 是64位,具體的 gcc 編譯器 32 位 64位 char 1 1short 2...
資料型別及其長度
c c 資料型別 1 整形 int long 2 字元型 char wchar t 3 布林型 bool 4 浮點型 float double 5 指標 從表中可以看出這麼幾個問題,int型別在64位系統下竟然是4個位元組32位的。還有,這些玩意兒到底跟什麼有關係?是誰在控制著?從網上扒了各種解釋,...