学习嵌入式的第三天
数据类型
获取数据类型存储的大小
sizeof运算符 可计算出指定数据(变量,常量)的字节大小
它的结果是 size_t类型的数据(本质上就是unsigned int或unsingned long 类型又系统和编译器决定),对应的占位符是 %zu
数据类型的转换
数据类型的隐式转换
- 整数 自动转 浮点数
- 小字节 自动转 大字节
- 有符号 自动转 无符号(在计算机里补码形式计算,输出看你是需要有符号还是无符号)
- short 和 char 会转换为 int 在运算 哪怕是那个 char类型也会转为int
- 给变量赋值时,值会自动转为变量的类型 比如 int a = 3.12; 就会精度丢失,值变成3
数据类型的强制转换
规则: (数据类型)数据 (int)3.14 或 (int)double类型 的变量
运算符
运算符: 运算符是一种特殊的符号,用以用于数据的运算、赋值和比较等。
操作数: 运算符运算的数据。
表达式: 表达式指的是一组操作数、运算符的组合,表达式一定具有值 ,一个变量一个常量也是表达式。
运算符4要素: 含义和功能、操作数个数、所组成表达式的值、该运算符有无副作用
运算符分类(按操作数个数): 一元运算符、二元运算符、三元运算符
运算符分类(按功能): 算术运算符、关系(比较)运算符、逻辑运算符、位运算符、赋值运算符、其他运算符
算术运算符
-
加减乘除和正常无异
-
取余:`表达式的值的符号(正负)与第一个操作数一直
取余运算符的操作数,必须都是整数
3.自增 自减
相同: 运算符在前后对操作数的副作用都是一样的(加一)
不同: 如果运算符在后,取操作数自增或自减之前的值作为表达式的值
如果运算符在前,组操作数自增或自减之后的值作为表达式的值
关系运算符
1. > < == <= >= != 都是
2、都是两个操作数 13 < 12 a == b
3.表达式的值是0或1(true或fault在c语言里 0 表示错误 非0 表示正确)是int 类型
逻辑运算符
1.逻辑与 && a<b && a<c
表达式的值,两个操作数都为真(非0),表达式为1,否则为0 a<b这个表达式是&&它的操作数之一
逻辑与断路 :当第一个操作数为0(错误),第二个操作数不会被执行
2.逻辑非 ||
表达式的值:俩个操作数有一个为真,表达式的值就为真(0)
逻辑非断路:当第一个操作数为真,第二个操作数不会被执行
3.逻辑非 !
一元运算符
表达式的值:操作数为真的,表达式为假,操作数为假,表达式为真
位运算符
1.按位与 & 俩个二进制数的补码上同一位都为1则为1 否则为0 二进制数每一位一一对应判断
2.按位或 | 两个二进制数的补码上有一个为1就为1 否则为0
3.按位异或 ^ 俩个二进制数的补码同一位都为1或0 则为0 否则为1
上面的都有俩个操作数
1.按位区反 ~ 一个二进制数上每一位取反 1变0 0变1
2.符号位左移 << 一个二进制数上的每一位,向左边移 右边不0 移几位可以理解成乘以2的几次方
3.符号位右移 >> 一个二进制数上的每一位,向右边移 符号位为1则左边不1,符号位为0则左边补0 可以理解为除2的n次方
存在精度丢失 12>>> 变成了 12/8 1.6变成1 -9>> 变成了3 9/4 2.5+1变成3
标签:运算符,操作数,符号,int,数据类型,第三天,嵌入式,学习,表达式
From: https://www.cnblogs.com/Wangleijava/p/18109353