1. 程式人生 > >32位有符號整型舉例

32位有符號整型舉例

十進位制: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對照輸出

總結:只與型別的位元組和位元組裡面儲存的資料有關。