C語言 0x7fffffff是多少(也就是INT_MAX,首位是 0,其余都是1,f代表1111)


可以算一下 0x7FFFFFFF 是多少
每個十六進制數4bit,因此8位16進制是4個字節,剛好是一個int整型

F的二進制碼為 1111
7的二進制碼為 0111

這樣一來,整個整數 0x7FFFFFFF 的二進制表示就是除了首位是 0,其余都是1
就是說,這是最大的整型數 int(因為第一位是符號位,0 表示他是正數)

用 INT_MAX 常量可以替代這個值。

INT_MIN在標准頭文件limits.h中定義

#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)

在C/C++語言中,不能夠直接使用-2147483648來代替最小負數,因為這不是一個數字,而是一個表達式。表達式的意思是對整數21473648取負,但是2147483648已經溢出了int的上限,所以定義為(-INT_MAX -1)。

C中int類型是32位的,范圍是-2147483648到2147483647 。 
(1)最輕微的上溢是INT_MAX + 1 :結果是 INT_MIN; 
(2)最嚴重的上溢是INT_MAX + INT_MAX :結果是-2; 
(3)最輕微的下溢是INT_MIN - 1:結果是是INT_MAX; 
(4)最嚴重的下溢是INT_MIN + INT_MIN:結果是0 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM