跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

C语言进阶:一.数据的存储(1)

以下是关于数据类型的详细介绍,内容进行了伪原创处理,以保持原意不变。 1. 数据类型详细介绍 1.1 类型简介 类型的意义: 使用这个类型开辟内存空间的大小(大小决定了使用范围) 。 如何看待内存空间的视角 。 类型的基本归类: 整型数据 :用于存储整数值,如int、short、long等。 浮点数类型 :用于存储带小数点的数值,如float、double。 自定义类型 :由用户定义的数据结构,如结构体、联合体等。 指针类型 :用于存储内存地址的变量。 空类型 :表示无类型或无返回值,如void。
void test(){} // void test(void){} void* p
1.2 整型在内存中的存储 当创建一个变量时,需要在内存中分配空间。空间的大小取决于不同的类型。 那么,数据在所分配的内存中是如何存储的呢? 立即学习 “ C语言免费学习笔记(深入) ”;
#include int main(){ int a = 20; int b = -10; return 0; }
我们知道为 a 分配了四个字节的空间。那么,a 是如何存储的呢? 2. 整型在内存中的存储:原码、反码、补码 计算机中的整数有三种二进制表示方法,即原码、反码和补码。 三种表示方法均有符号位和数值位两部分,符号位用0表示“正”,用1表示“负”,而正数的原码、反码、补码都相同。 vue.js + axios.js图片压缩处理并上传到服务器 vue.js + axios.js图片压缩处理并上传到服务器 下载 负整数的三种表示方法各不相同: 原码 :直接将数值按照正负数的形式翻译成二进制就可以得到原码。 反码 :将原码的符号位不变,其他位依次按位取反就可以得到反码。 补码 :反码加1就得到补码。
#include int main(){ int a = 20; // 正数的原码、反码、补码都一样 // a的原码:00000000 00000000 00000000 00010100 // a的补码:00000000 00000000 00000000 00010100 // a的反码:00000000 00000000 00000000 00010100 int b = -10; // b的原码:10000000 00000000 00000000 00001010 // b的反码:11111111 11111111 11111111 11110101 // b的补码:11111111 11111111 11111111 11110110 return 0; }
对于整型来说,数据在内存中实际存储的是补码。 我们可以看到,对于a和b分别存储的是补码。但是我们发现顺序有点不对劲。这是为什么呢? 3. 大小端字节序介绍及判断 1. 什么是大端小端? 大端和小端是指数据在内存中的存储顺序。大端字节序(Big Endian)是指数据的高位字节存储在低地址,而小端字节序(Little Endian)是指数据的低位字节存储在低地址。 2. 为什么有大端和小端? 大端和小端的存在主要是为了解决不同 处理器 架构之间的兼容性问题。不同的处理器可能会采用不同的字节序,因此在数据传输和存储时需要考虑字节序的问题。

相关文章