在上一篇文章中,我们初步认识了C语言,接下来我们聊聊C语言的基础数据类型,为什么要用基础来修饰呐?因为还有非基础的数据类型。 基础的数据类型主要包括整型、字符型、浮点型。不同数据类型的主要不同是在计算机中存储方式的不同。 首先讲的是整型,所谓整型就是我们小学刚开始接触的整数,1、2、3这些属于整型,相信学习过大学计算机基础的都知道,所有的数据都是以二进制的方式在计算机中存储,整型的存储方式是所有数据类型中最简单的,比如十进制的15,在计算机中所存储的是二进制的1110,再比如十进制的520,实际存储的是二进制的1000001000。由此可见,计算机是很笨的只认识0和1,聪明的是我们这样的人类。其中整型又分为有符号整型和无符号整型,有符号与无符号主要是相对负数来说的,就如我们的数字,整数前面的正号可以忽略,但是负号不能忽略。讲到有符号与无符号的时候,不可避免的讲到补码,正如前面所说的,计算机只认识0和1,它并不认识正号和负号,在存储单元中的存储方式是:用整数的补码形式存放。正数的补码是其自身,而负数的补码是其绝对值得反码加一,比如-5,它的绝对值是5,5的二进制是00000101,按位取反得到5的反码11111010,在加上1就得到了-5的补码11111011。也许有人就会奇怪了为什么是以补码的方式存储呐?我刚开始学习到这个地方的时候也是十分疑惑,慢慢的就理解了,首先一个概念就是一个数据存储的长度是固定不变,比如8位的5就只能是用八位的二进制来表示5,就如时钟的时针,只能用12个刻度来标示 。 字符型是有八位二进制组成的,在ASCII表中规定了一些常用的字符,编码和字符是一一对应的。 浮点型数据的存储方式比较复杂,一般都是转化为指数形式保存的,比较容易失真,比如我们在excel中设置一个行距为5,但真正保存的时候往往是4.99,所以在比较浮点数是否相等的时候,应该允许一定的误差。