1. 程式人生 > >16進制,2進制,輸出數的二進制表示

16進制,2進制,輸出數的二進制表示

blank tro 字符 toa 無符號 quest fff target back

itoa轉換為2進制的char*字符串,輸出,cout<<hex<<128輸出16進制

https://www.zhihu.com/question/20329210   8為無符號的範圍是-128——127,00——7f表示0到127,80——FF表示-128到-1

char ss[33];           -1的補碼16進制表示為0xffffffff,共需要32位,且高位不是0,所以需要33個字節來存;如果是-128呢?輸出ffffff80,也需要33個字節;如果是128,只輸出10000000,不需要33字節
cout << -1<< endl;
_itoa(-1, ss, 2);;

cout<<hex<<-128<<endl;     輸出ffffff80;cout沒有bin的形式可以輸出二進制

cout<<128<<endl;       上句cout的狀態為hex,會保留下來,所以這句也是輸出80,80是128作為一個int的16進制表示

0x0——0x7fffffff賦值給int是非負整數,0x8000000——0xffffffff表示了[最大負數,-1]的範圍,例如-1的16進制表示為0xffffffff

int a=0xffffffff; cout<<0xfffffff;為無符號的4294967295  4,294,967,295是最大的unsigned int(32位)值,輸出a結果為-1,a=0xffffffe是-2


最小的int是0x80000000

int a=0x80000000,a的值為-2,147,483,648; 

1 int d = 0xffffffff; 
2 cout << d << endl;
3 cout << 0x7fffffff << endl;
4 cout << 0x1 << endl;
5 cout << 0xffffffff << endl;

16進制,2進制,輸出數的二進制表示