一. 数据类型的详细介绍
在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式,那么数据类型可以分为以下几种:
数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型。在本文接下来的部分我们将介绍基本类型!
1)整数类型
注:不同数据类型在不同环境下所占的字节大小是不一样的,下图供参考:
2)浮点类型
3)void类型
二 .整形在内存中的存储:原码、反码、补码
接下来我们介绍关于整形数据是如何在内存中存储的:
计算机中整数有三种二进制表示方法,即原码,反码,补码。三种表示方法均有符号位和数值位两部分,符号位都是用 0 表示“正数”,用 1 表示“负数”。
正数的原码,反码,补码相同;
负数的原码,反码,补码各不相同;
原码:直接将数值按照正负数的形式翻译成二进制就可以得到原码
反码:将原码的符号位不变,其他位依次按位取反就可以得到反码
补码:反码+1就可以得到补码
对于整形来说:数据在内存中存放的是补码!!!
为什么呢?
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;
同时,加法和减法也可以统一处理(CPU只有加法器)此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
举个例子来介绍下原码反码和补码:
对于上面所说的,有的小伙伴可能会问,那为什么整形在内存中存放的补码呢?而不是原码和反码呢?
我们举个例子来验证一下这个问题:由于正数的原码反码补码相同,为了更好的证明,我们取个负数来演示: