关于0xffffffff 到底是什么意思?
生活随笔
收集整理的這篇文章主要介紹了
关于0xffffffff 到底是什么意思?
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
0x16進制
一個f代表4個1,
所以就是2進制的32個1.
但是運行一下下面這個代碼就會發(fā)現(xiàn)輸出的是-1
#include <iostream>
using namespace std;
int main()
{
int i = 0xffffffff;
cout << i << endl;
return 0;
}
結(jié)果是-1
因為int為帶符號類型,帶符號類型最高為是符號位,又因為0xFFFFFFFF,也就是四個字節(jié)32bits全是1,符號位是1,所以這個數(shù)是負數(shù)。
內(nèi)存中的數(shù)值為補碼表示,所以0xFFFFFFFF是一個負數(shù)的補碼。負數(shù)從補碼求原碼,最高符號位不變,保持1,其余各位求反,末尾加1,也就是0xFFFFFFFF,二進制為:11111111111111111111111111111111
->10000000000000000000000000000000
->10000000000000000000000000000001
原碼首位表示符號位,其余位表示絕對值大小,所以,這個數(shù)是-1
總結(jié)
以上是生活随笔為你收集整理的关于0xffffffff 到底是什么意思?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编辑时怎样换行_python
- 下一篇: SEO关键词优化中有哪些核心因素