1整型在内存中的存取
内存中存取的用的是补码
大小端
大端字节序存取与小端字节序存取
只有超过1个字节才有大小端,才有顺序问题
int main()
{
char a = -1;
/*
-1
10000000000000000000000000000001原码
11111111111111111111111111111111补码
11111111截断
11111111111111111111111111111111整型提升
10000000000000000000000000000001原码
*/
signed char b= - 1;
unsigned char c = -1;
/*
-1
10000000000000000000000000000001原码
11111111111111111111111111111111补码
11111111截断
00000000000000000000000011111111整型提升
00000000000000000000000011111111原码
*/
char d = -128;
/*
-128
10000000000000000000000010000000原码
11111111111111111111111110000000补码
10000000截断
11111111111111111111111110000000整型提升
整型提升:有符号补符号位,无符号数补零
*/
char f = 128;
/*
128
00000000000000000000000010000000补码
10000000截断
11111111111111111111111110000000整型提升
*/
printf("%d %d %d %u %u", a, b, c,d,f);
//%u打印无符号整数
return 0;
}
char -128到127,构成循环
unsigned char范围 0到255
答案255
unsigned char i = 0;
int main()
{
for (i = 0; i <= 255; i++)
{
printf("ai");//死循环
}
}
2浮点型在内存中的存取
浮点型与整型在内存中存取方式是有差异的
存放
对E进行修正
float E +127
double E +1023
拿取
1>普通情况
2>e为全0 接近0的一个数
3>e为全1 接近一个非常大的数
浮点数在内存中有可能是不能精确保存的
浮点数最好不要直接比较