十进制: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对照输出
总结:只与类型的字节和字节里面储存的数据有关。