上海网站建设套餐,网站建设都有那些费用,自己如何优化网站排名,通过qq群可以进行友情链接交换前言#xff1a;时光如梭#x1f4a6;#xff0c;今天到了C语言进阶啦#x1f60e;#xff0c;基础知识我们已经有了初步认识#xff0c; 是时候该拔高拔高自己了#x1f63c;。 目标#xff1a;掌握浮点数在内存的存储#xff0c;整形在内存的存储。 鸡汤#xff1a… 前言时光如梭今天到了C语言进阶啦基础知识我们已经有了初步认识 是时候该拔高拔高自己了。 目标掌握浮点数在内存的存储整形在内存的存储。 鸡汤时光易过岁月蹉跎。☺️ 深度剖析数据在内存中的存储
1️⃣数据类型的介绍 前面已经讲解过了可以再看一遍熟悉熟悉这里有些没有见过没关系后面会详细介绍。
1.类型的基本归类 当然这里有些没有学过没得关系咱们一步一步来不要一口吃成一个胖子。
2️⃣整形在内存的存储
其实我们知道整形在内存为4个字节32个比特位以二进制的形式存储让我们再看看二进制等其它进制 二进制以0和1的形式来表示一个数据 八进制以0开头如0 123456 十进制十进制就是生活中的进制 如10 十六进制以0x开头如0x443322211 1.原码反码补码
在前面我们已经知道这里就巩固巩固 原码以二进制的形式存储 反码原码中符号位不变其它位按位取反 补码在反码的基础上加一 ♾️正数的原码反码补码相同。 ♾️在数据存储中以补码的形式存储
2大小端介绍 ♾️如果最高位的字节数据存在最低地址上而次高位的字节数据按次序排列在次低的地址上那么这种存储方式就叫大端存储。 ♾️如果最低位的字节数据存在最低地址上而次低位的字节数据按次序排列在次低的地址上那么这种存储方式就叫小端存储。 3练习 有符号和无符号的区别 ❕unsigned char:无符号把最高的符号位当做数值 ❕signed char有符号正常计算 ❗技巧无符号直接用补码有符号找原码 ⭕1000 0000最小值 -128无法计算这里说的是有符号数 ⭕1111 1111 255这里是无符号的数值 有了上面的认识下面的练习会简单不少 第一题
#includestdio.h
//输出结果
int main()
{char a -1;signed char b -1;unsigned char c -1;printf(a%d,b%d,c%d\n, a, b, c);// -1 -1 255return 0;
}第二题
#includestdio.h
//输出结果
int main()
{char a -128;//%u是无符号数printf(%u\n, a);return 0;
}
//4294967168第三题
#includestdio.h
//输出结果
int main()
{char a 128;//%u是无符号数printf(%u\n, a);return 0;
}
//42949671683️⃣浮点数在内存的存储
1一个例子让你看清浮点数的存储
#includestdio.hint main()
{int n 9;float* pfloat (float*)n;printf(n的值为%d\n, n);printf(*pflaot的值为%f\n, *pfloat);*pfloat 9.0;printf(n的值为%d\n, n);printf(*pflaot的值为%f\n, *pfloat);return 0;
}很多小伙伴有问号先抛出问题咱们后面一一讲解。
2浮点数存储的规则 公式浮点数 -1^s × M × 2 ^ E s只能是 0 或 1代表数字的正负 M: 是二进制的科学计数法 E: 为次幂 127 以-5.0为例 二进制为-101.0 二进制的科学计数法为-1.01×2^2 所以s 1, M 10 ,E 2 127。 那我们再返回看看前面的例子是不是瞬间就懂了呢这里博主就讲解了师傅领进们修行靠个人。 4️⃣结尾
今天内容就到这里时间过得很快大家沉下心来好好学习会有一定的收获的大家多多坚持嘻嘻成功路上注定孤独因为坚持的人不多。那请大家举起自己的小说给博主一键三连有你们的支持是我最大的动力回见。