![0d08432cb516b9cbbaa81d8870038ab7.png](https://i-blog.csdnimg.cn/blog_migrate/5b5f172e40650e1526ea808031e9001b.jpeg)
常量,接触这一个内容你得先知道它是什么?
常量就是它的值在程序运行的过程中不可以改变的数值。比如说你的身份证号就是一个常量,因为它不能更改了啊,常量就是不能更改的,你就可以这么理解,想到常量就知道他要贯穿始终。
知道常量是什么东西了,那么我给发分成下面这几类,毕竟“一锅烩”你也头疼不是:
1、 数值型常量
2、 字符型常量
3、 符号常量
化整为零,一分为三,现在我们对第一个数值型常量来进行共同研究,还希望我哪里错的希望能有大神对我来一个纠正。
![2d497ddecfc4727b591873a89e4d51fb.png](https://i-blog.csdnimg.cn/blog_migrate/e70fcd5137802e876ccc9edf020a8791.jpeg)
数值型常量包括了整型常量和实型常量,
那么我们先来对整型常量来进行一个讲解,整型常量可以是十六进制整数、八进制整数和十进制整数的三种常量,那么怎么区分这三种常量呢?
1、 八进制整数
八进制的常量前用0(这里采用的是数字0作为前缀,不是字母O!!!)作为前缀,取值是在0~7之间:
0520 /*合法*/
0101 /*合法*/
0127 /*合法*/
这三组数字都是合法的,是编译器能编译出来的,不合法的例如:
096 /*不合法,9不是八进制的取值范围*/
078 /*不合法,8不是八进制的取值范围*/
346 /*不合法,没有前缀0*/
这三组是不合法的,那么合法和不合法的区别是什么,合法就是你所用的编译器能编译出来,那么不合法就是你的编译器无法识别,所以一定要注意哦。
![28c7a09f4ff8e6689e3168a614373cf2.png](https://i-blog.csdnimg.cn/blog_migrate/ab40a29eb86797d0ea942f655df890a3.jpeg)
我们已经接触了C的基础,上文讲了关键字,标识符和数据类型。那么我们今天就开始接触常量和变量,一口吃不成大胖子,我们今天就着重研究常量这一个内容。2、 十六进制整数
十六进制的前缀是以0x或0X(注意这里是0是数字,不是字母O!!!注意这里是0是数字,不是字母O!!!)作为前缀,取值在:数字0~9、字母A~F或a~f
0X16 /*合法的*/
0x2F /*合法的*/
0XCC /*合法的*/
这几个都是合法的,不合法的例如:
9A /*不合法,没有前缀*/
0X3N /*不合法,N不是十六进制的取值*/
056 /*不合法,这是八进制的前缀*/
其实你记住前缀和取值范围,基本上就不会错的,因为加上前缀之后你所能用的取值范围就有限制了,你就不会有太大的选择空间。
有时候你会看见常量后面带的后缀U或L进行修饰,这两个字母又是什么意思呢?
U:表示这个常量是无符号整型
L:表示这个常量是长整型
LongNumer=1000L /*L表示长整型*/
Unsigned LongNumer=5000U /*U表示无符号整型*/
告诉你个秘密,这两个后缀可以大写也可以小写呢。
3、 十进制整数
十进制的整数,这个是没有前缀的,但是大家要注意一点是不能用数字0去做这个十进制整数的开头,十进制的取值包含0~9,我们都知道计算机内的整型数据都是以二进制的方式存放在计算机内存之中,顺便了解一下二进制的算法:
二进制说白了就是逢二进一,那么怎么算呢?
0+0=0
0+1=1
1+1=10
1+2=11
以此类推,其实很简单,下面我们在讲一下二进制的题外话:
磁盘里的二进制其实使用N和S来表示的,N=0、S=1,通常是把8个0或者1为一组叫做1byte(字节),那么这一组之中的0或者1单独叫做1bit(比特),一个英文字母需要1byte,一个中文汉字需要2byte。
![df4133fe5717201ba2178dfa197dfbcf.png](https://i-blog.csdnimg.cn/blog_migrate/e3c9bd1edc955a37ec5524a1b4490b2b.jpeg)
我们举个例子,把这八个0当作不亮的灯泡,那么1为灯泡亮起来,现在我要给你传达一个数据,八个灯泡亮或者没有亮的行为叫做“并行”(8位),如果我只拿一个灯泡闪烁给你传达消息的行为是“串行”,也就是一串信号的意思,那么这么一对比,在相同频率下,“并行”的传送效率肯定高于“串行”。所以呢,你想你的电脑处理数据快一点呢,就选高位数的,64位肯定高于32位。
好了言归正传,用11在十进制的显示,给大家举个例子。
2的表达是10、3的表达是11、4的表达是100……11的就是1011,我们在十进制的表达就是
0000000000001011
那么-11怎么表达呢?因为要以补码进行表示,我们先取它的绝对值,然后进行取反:
1111111111110100
取反之后我们还需要加1,就能得到最终的结果-11
1111111111110101
这里给大家说一下,对于有符号的整数,其内存中存放的最左面的那一位是符号位,如果是0就是正,如果是1就是负,记住哦。
![3e12b6d0afc91a26e09da6e30ecd9fbe.png](https://i-blog.csdnimg.cn/blog_migrate/e41aeca294434b0fdcf1d1fb39912285.jpeg)
刚才那么多我们讲的都是整数,现在我们讲一下这个有小数点的数值,也就是浮点型常量(实型常量),它的表示方式有小数表示、指数表示方式。
小数表示方式就是
SciNum1=123.45
SciNum2=0.5637
指数表示方式,用字母e或E来进行指数显示,514e2就是表达的51400,514e-2表达的就是5.14,用指数显示:
SciNum1=1.2345e2 /*指数方式显示*/
SciNum2=1.2345e-1 /*指数方式显示*/
这里给大家最后说一个小知识,如果你在后面加一个F进行修饰,那么这个值就代表单精度类型,大小写都通用,F通常表示float单精度类型,如果你不带,默认选项都是double双精度类型哦。
好了今天就先学到这里,想从零学习C的可以关注我哦。