变量就是内存空间
float几个字节多少位我们刚才讲了变量,变量就是一块内存空间,那他只是一个内存空间而已,那这个空间到底占多大呢?对不对?好了,那我们就需要回到现实世界了,实际上在现实世界里面,他的数据的类型是很多很多种的。比如我们在游戏里面,攻击力啊经验值啊,还可以跟别人一起聊天啊,还有称号。大家发现这些东西的话,有英文啊有中文啊,有小数啊有整数啊,我们把这些数据一旦分类以后,这些数据可以大体分为两类数。一类是数值的数据,一类是非数值的数据。是不是啊,那我们如果再细分呢?再细分就变成了整形数据和非整形数据,那非数值数据再细分的话呢,一样也有很多。所以我们知道了这些事情了之后,我们发现数据的类型在c语言里面,整形里面一共有3个。这三个数据我们称他为整型数据,我们最常用的就是int。Int数据就是我们的常用的整型数据,非整形里面有两种,一种叫float一种叫double。Float叫做单精度浮点型,double叫做双精度浮点型。这两个数据类型也非常重要,整型数据一般用来表示整数。Float和double的区别呢,就是float的一个精度和位数要比double小一些。所以我们一般用的时候,double要用的比较多一些。下面就是非整形数据类型,如果有同学学过c语言以外的语言,大家知道用的最多的是字符串型。但是很可惜,在我们的c语言里面,我们刚开始学习的时候暂时不会接触字符串类型,那怎么办呢,只有字符类型。那我们要操作字符串怎么办呢?
要操作字符串呢没办法,我们只能操作字符数组,我们学习了字符数组了之后呢,也可以加深我们队字符串的理解。要是直接学字符串呢,他已经封装了很多字符数组的操作方法,如果大家今天第一次学习这种东西,就当我没说好吧。我们不着急。
紧接着,我们最枯燥的来了啊,我们稍微给大家讲一下,提一下就可以了。怎么说呢,当年我们老师在大学里面学这个东西,说实话我看到这东西都头晕,所以这里呢我希望大家今天我在讲课的时候,大家最重要的是看我的推导过程。而不要看后面的取值范围,取值范围呢我们到时候百度一下就ok了,面试的时候也不会有人问你什么整形的取值范围是多少啊,就算你会背了也没什么特别有用的,那么整形的话呢他的一个英文单词,或者说类型说明符是int型的。默认的位数是32位,要注意了啊各位,如果大家下载了编程软件,编程工具是toolbc,好多大学里面用的就是这个。古老的编译器的话,这里的位数有可能是16位,所以这个位数到底是什么东西,大概的给大家讲解一下什么是位数。因为很多同学在上课之前是没有学过二进制的对不对,什么是位数呢?位数呢就是二进制,8个1就是8个二进制。所谓整形,他的位数是32位是什么意思啊,32位意味着有4串这样的二进制。那一串是8位,8位用单位来表示,就是8 bit。那8 bit(比特) 实际上是多少字节呢?就是1 byte(字节)。那大家看如果一个整形如果占32位的话,他是占了几个字节呢?很明显是占了4个字节。所以
很多时候我们在程序上真正的表示一个整形,如果全是1的话就是最大值喽,如果全是0的话就是最小值喽。我们先不看那么多的1。我们来看二进制转10进制,转之前我给大家先讲一下二进制的加法,1+1=? 对于2进制来讲1+1 = 10  2进制就是逢2进1,十进制就是逢十进一,大家仔细想想十进制是没有十以后的数字了吧。因为10这个数字是由1和0组成的,那同样的12进制就没有12,8进制就没有8.所以我们要把2进制转化成10进制的话。怎么样最简单呢,我们就把这个8个1加1再减1,不知道大家有没有听懂哦,这个地方,还是比较绕的。我们看11111111 + 1 -1 ,因为我加1减1 的话,他最终的结果是不会变的。那么1+1等于几呢,进一位等于0,对不对,0然后进1,然后1+1又是0 了,所以8个1+1以后呢,相当于1后面有几个0 了?当然是8个0了,所以就等于2的8次方。就等于2的8次方减1,就等于256-1,等于255。所以32位二进制的最大值就是255,如果有符号呢,如果有符号就把第一位当作符号位,1就是负的,0就是正的。如果是这样的话后面下上7个1,如果是7个1的话呢就是-127.这个地方有点困难哦,大家只需要记住推导过程是怎样的就可以了,那如果是32位的话就意味着,就是4个字节,那4个字节的话那就是2的32次方-1.这里说一下,知道和不知道都没关系。