32位有符號整型舉例
阿新 • • 發佈:2019-01-01
十進位制:1
二進位制:0(符號位,0為正,1為負)0000000000000000000000000000001
十進位制:0
二進位制:0(符號位,0為正,1為負)0000000000000000000000000000000
十進位制:-0
二進位制:0(符號位,0為正,1為負)0000000000000000000000000000000
十進位制:-2147483648
二進位制:1(符號位,0為正,1為負)0000000000000000000000000000000
十進位制:-2147483647
二進位制:1(符號位,0為正,1為負)0000000000000000000000000000001
由有符號整型轉換為無符號整型,其32位機器碼不變。
#include<iostream>
using namespace std;
int main (void)
{
int i=-1;
unsigned j,k=-1;
j=i;
cout<<j<<endl; //輸出結果是4294967295
cout<<k; //輸出結果是4294967295
getchar();
}
對於printf函式來說,
%d,
1.檢視32位是否是0或者1
2.如果是1,31位求補碼算出;如果是0,31位直接算出。
%u
32位全部直接算出
%f
float 取出32位
double 取出64位
long double 取出96位
%c
char 取出8位 按照ACSII對照輸出
總結:只與型別的位元組和位元組裡面儲存的資料有關。