大小端存储
不同类型的整型提升
int类型和folat类型在内存中的存储方式
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int main()//判断是大端存储方式还是小段存储方式
//{
// //大端存储模式是指数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中
// //小端存储模式是指数据的高位保存在内存的低地址中,数据的低位保存在内存的高地址中
// int a = 1;
// char* p = (char*)&a;
// if (*p == 1)
// {
// printf("小端存储\n");
// }
// else
// printf("大端存储\n");
// return 0;
//}
/*
int check_sys()//封装成函数
{
int a = 1;
char* p = (char*)&a;
//返回1是小端
//返回0是大端
return *p;
}
//1.指针类型决定了解引用操作可以访问几个字符,char* p,访问了1个字节,int* p,访问了4个字节
//2.指针类型决定了指针+1或者-1,加的或减的是几个字节,char* p;p+1跳过1个字符,int* p;p+1,跳过一个整形,4个字节,double*,8个字节
int main()//判断是大端存储方式还是小段存储方式
{
int ret = check_sys();
if (ret == 1)
{
printf("小端存储\n");
}
else
printf("大端存储\n");
return 0;
}
*/
/*
int main()
{
char a = -1;
//int a=-1;-1的源码,反码,补码
//10000000000000000000000000000001
//11111111111111111111111111111110
//11111111111111111111111111111111
// 在char类型中
// 11111111
//打印整型%d,发生整型提升,按原符号提升
//11111111111111111111111111111111补码
//10000000000000000000000000000001源码
signed char b = -1;
//11111111
//有符号数字整型提升,符号位为1
//11111111111111111111111111111111补码
//10000000000000000000000000000001源码
unsigned char c = -1;
//11111111
//无符号数字,整型提升
//00000000000000000000000011111111源码,补码,反码相同
//转换为十进制为255
printf("%d %d %d\n", a, b, c);
return 0;
}
*/
/*
int main()
{
char a = -128;
//10000000
//整型提升
//11111111111111111111111110000000补码,直接按无符号数字打印,源码,反码补码相同
printf("%u\n", a);
//%d - 打印十进制的有符号数字
//%u - 打印十进制的无符号数字
return 0;
}
*/
//int类型在内存中的存储方式,folat类型在内存中的存储方式并不相同
//folat类型在内存中,根据IEEE,754文件以以下的方式进行存储
//(-1)^S * M * 2^E ,存的时候E需要+127
int main()
{
int n = 9;
//0 00000000 00000000000000000001001 - 补码
float* pFloat = (float*)&n;
printf("n的值为:%d\n", n);//9
printf("*pFloat的值为:%f\n", *pFloat);//0.000000
//(-1)^0 * 0.00000000000000000000101 * 2^-126
*pFloat = 9.0;
//1001.0
//1.001*2^3
//(-1)^0 * 1.001 * 2^3 3+127=129
//0 10000010 00100000000000000000000
//直接打印出来十进制就出现了奇怪的数字
printf("num的值为:%d\n", n);//
printf("pFloat的值为:%f\n", *pFloat);//9.0000
return 0;
}
标签:存储,int,补码,char,内存,printf,随笔
From: https://blog.51cto.com/u_15906483/6176557