一、常量及符号
常量就是在程序运行过程中不可以改变的数值。例如,每个人的身份证号码就是一常量,是不能被更改的。常量可分为整型常量、浮点型常量、字符常量和字符串常量。
上面的代码通过com输出4行内容,cot是输出流,实现输出不同类型的数据。其中2009是整型常量,2.14是浮点型常量(实型常量),a是字符常量,HelloWorld是字符串常量。
二、整型常量
整型常量就是直接使用的整型常数,0、100、-200等都是整型常量。
整型常量可以是长整型、短整型、符号整型和无符号整。如表2.1所示,这几种数类型如同容积不同的烧杯,虽然用法一样,但在不同场景就要使用不同的烧杯。
表2.1 整型常量数据类型
数据类型 | 长度 | 取值范围 |
unsigned short | 16位 | 0-65535 |
signed short | 16位 | -32768~32767 |
unsigned int | 32位 | 0~4294967295 |
signed int | 32位 | -2147483648~2147483647 |
signed long | 64位 | -9223372036854775808~9223372036854775807 |
学习笔记:
不同的编译器的整型常量的取值范围是不一样的。而且,可能在16位的计算机中整型常量为16位,而在32位的计算机中整型常量就为32位。
在编写整型常量时,可以在常量的后面加上符号L或U进行修饰。L表示该常量是长整型,U表示该常量为无符号整型,例如:
LongNum- 1000L; /*L表示长整型*/
UnsignLongNum=500U; /*U表示无符号整型*/
1. 八进制整数
使用的数据表达形式是八进制,需要在常数前面加上0进行修饰。八进制形式包含的数字是0~7.例如:
OctalNumber1-0520; /*在常数前面加上一个0代表八进制数*/
以下是八进制形式的错误写法:
OctalNumber3=520; /*没有前缀0*/
OctalNumber4=0296; /*包含非八进制数字9*/
2.十六进制整数
常量前面使用0x作为前缀(注意:0x中的0是数字0,而不是字母0),表示该常量是用十六进制进行表示的。十六进制形式包含数字0~9及字母A~F。例如:
HexNumberl=0x460; /*加上前缀0x表示常量为十六进制数*/
HexNumber2=0x3ba4;
3.十进制整数
十进制形式是不需要在常量前面添加前缀的,包含的数字为0~9。例如:
AlgorismNumber1=569;
AlgorismNumber2=385;
整型数据都以二进制形式存放在计算机的内存之中,数值是以补码的形式进行表示的。正数的补码与原码的形式相同,负数的补码是将该数绝对值的二进制形式按位取反再加1。例如,十进制数11在内存中的表现形式如图2.6所示。
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
图2.6 十进制数 11 在内存中的表现形式
如果是-11,那么它在内存中又是怎样表现的呢?因为是用补码进行表示,所以要先将其绝对值求出,如图2.6所示;然后进行取反操作,如图2.7所示,得到取反后的结果。
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
图2.7 进行取反操作
取反之后进行加1操作,这样就得到最终的结果,如图2.8所示。
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
图2.8进行加1操作
三、总结
以上就是今天要讲的内容,本文仅仅简单介绍了C++基础中的常量和整形变量。
四、结言
感谢大家的阅读与参与,您的支持是我前进的动力!谢谢您的观看!!!