数据(常量和变量)
目录
ascii
a
97A
65 (大小写字母相差 32)0
48
标识符命名规则
由字母,数字,下划线组成
变量名只能以字母,下划线,**$**开头
visual studio 中可用中文作变量名
变量&变量类型
//待补充:整数溢出
- float 在运算时很容易被转换成 double(混合计算,传参),所以直接用 double 就行
- 参加+, -, *, / 运算的两个数中有一个数为 float 型数据,则运算的结果是 double 型
- 常量无 unsigned 型
浮点数:
c
21.0,0.91,0.0
//等价于21. , .91 , 0. 或 .0
//按双精度常量处理
3.14159等价于0.314159e1
//可用指数形式表达
//按双精度常量处理
储存方式如下:
数符 | 数字部分 | 指数部分 |
---|---|---|
+ | .314159 | 3 |
进制
0x/0X 开头 //该数字为 16 进制数
0 开头 //该数字为 8 进制数
0b/0B 开头 //该数字为 2 进制数
数据类型
int 范围约为 ±2147483647
数据类型 | 占用空间 | 取值范围 |
---|---|---|
short(短整型) | 2 字节 | (-2^15 ~ 2^15-1) |
int(整型) | 4 字节 | (-2^31 ~ 2^31-1) |
long(长整形) | Windows&Linux(x32)-4 字节 /Linux(x64)-8 字节 | (-2^31 ~ 2^31-1) |
long long(长长整形) | 8 字节 | (-2^63 ~ 2^63-1) |
char(字符型) | 1 字节 | |
float(单精度浮点型) | 4 字节 | 7 位有效数字 (小数点左边的 0 也算) |
double(双精度浮点型) | 8 字节 | 15~16 位有效数字 (小数点左边的 0 也算) |
C 语言中的基本类型为 int、char、float,其他类型都是由这些基本类型衍生出来的。
[unsigned] [short/long [long]] int // 可随意组合
数据的存储方式
int
类型通常是一个有符号整数,表示方式为二进制补码
- 补码表示:
- 对于正数,补码和原码相同。
- 对于负数,补码是原码的反码加 1。
- 例如,对于一个 8 位的 int:
- +5 的二进制表示为 00000101。
- -5 的二进制补码表示为 11111011(原码 10000101,取反为 11111010,加 1 为 11111011)。
- 例如,对于一个 8 位的 int:
因为
0
被放到了正数的范围内,所以负数的范围比正数的范围大 1
类型转换
非 0 数可转化为 true
可以给逻辑型输入 true/false 和任意数字,逻辑型只输出 0 或 1:
c
1//true(非0即为true)
0//false
cout<<true;//输出1
数值运算时先转换成(式中所占储存最大的)类型再运算:
c
//三目运算符中的数值转换
x>y?1:1.5
//条件表达式的值的类型为二者中较高的类型
//输出1.0(双精度)或1.5
//待补充:数据类型以及占用空间大小
强制类型转换:
c
数据类型(操作数)or(数据类型)操作数
转换的规则:
将一个 int、short 或 long 型数据赋给一个 char 型变量时,只将其低 8 位原封不动地送到 char 型变量
c
short int i=289;
char c;
c=i;//c=33
将 signed(有符号)型数据赋给长度相同的 unsigned(无符号)型变量时,将存储单元内容原样照搬//-1→65535
数据类型定义
编译器遇到小数默认为 double
c
3E2 //科学计数法,等价于3*10^2,视为double型
long a=666L//加l或L(语法规范)
float a=3.14F//加F或f(语法规范)//3.14被视为double
float a=3 F// 3被视为int型(l和L同理)
tips:用强制类型转换也可以