int main(void)
結果:a=-1, b=-128, c=127, d=1
aa=255, bb=0, cc=1
你看下unsigned char 值從0-255
char就是int
char值從-127-+128
在0-128 不管unsigned char 還是char的值都要一樣的
是的沒錯
char 對應int
int是32位
unsigned char 對應unsigned int
一般處理器都是這樣的
int 是4個位元組 32位
char是1個位元組 8位
int 是4個位元組 32位
unsigned int 是4個位元組 32位
char是1個位元組 8位
unsigned char是1個位元組 8位
區別在於
char 範圍是 -127-128 共256個數
unsigned char 範圍是 0-255 共256個數
int和uint也是一樣的,2的32次方
ok 碉堡了
char是2的8次方
這次你徹底清晰了吧
其實就是最高位的含義不同 unsigned 的最高位也充當數字 而一般的最高位是作為符號位
沒錯 這個是彙編的世界了
在二進位制裡來搞 比較清晰
11111111是-127
10000000是128
這個128是個特殊的數字 其實是-0 計算機為了多記乙個數所以把他當做128
彙編的 記起來了
沒錯 是這樣
碉堡這個徹底搞透
int 與 unsigned int 移位運算
今天看到個別人提的問題,不懂便查了點資料解決了 可能很簡單,但之前確實不清楚 問題如下 執行結果是什麼?結果為 fffffff4 f8 思路為 開始想著這肯定跟型別範圍有關,int 為 2的31次方 到 2的31次方減1,unsigned int 為0 到 2的32次方。後來想到 int是帶符號型別...
unsigned int與int相加問題
作者 卿篤軍 一道unsigned int與int型別的相加題目。引發了我對這個問題的思考。首先要明確兩個問題 問題一 unsigned int和int究竟哪個能表達出來的數上限大呢?答 當然是unsigned int。為什麼?答 由於。int將最高位看做是符號位。0表示 正 1表示 負 也就是說,...
unsigned int數相減時候的trick
假設是8位的unsigned int整數。乙個是x 134,乙個是y 246.首先拿過來就是計算它們的二進位制位 134 1000,0110b 246 1111,0110b 因為是無符號數,所以解釋成正數,也就意味著這樣的看似原碼的二進位制位就是補碼表示,也可以理解為符號位在第九位藏著乙個0.這裡主...