嵌入式c语言学习进行时

39 阅读3分钟

数值的表示方式

原码

最高位为符号位,其余各位为数值本身的绝对值。

  • +2的原码为00000010
  • -2的原码是10000010

反码

正数

反码和原码是相同的。

  • 例如-2的原码是10000010
负数

符号位为1其余位对原码取反。

  • 例如-2的反码是11111101

补码

正数:原码、反码与补码相同。

负数:反码加1。

  • 2的原码是10000010
  • 2的反码是11111101
  • 2的补码是11111110

数据类型

基本数据类型
  • char  字符型,通常1字节
  • short 短整型,通常2字节
  • int 整型,通常4字节
  • long长整型,通常4或8字节
  • long long 双长整型,通常8字节
  • float 单精度浮点数,通常4字节
  • double 双精度浮点数,通常8字节
  • long double 长双精度浮点数,通常8或16字节

输出控制符

  • %d - 十进制整数
  • %f - 浮点数(小数)
  • %c - 单个字符
  • %s - 字符串
  • %x - 十六进制整数
  • %o - 八进制整数

修饰符:

  • %ld - 长整型(long)
  • %lf - 双精度浮点数(double)
  • %u - 无符号整数
  • %p - 指针地址

格式控制:

  • %.2f - 保留2位小数
  • %5d - 占5个字符宽度,右对齐
  • %-5d - 占5个字符宽度,左对齐
  • %05d - 不足5位前面补0

特殊:

  • %% - 输出一个百分号%
  • %n - 将已输出字符数存入变量

运算符

运算符相关术语

  • 表达式:由一个或多个操作数及运算符组成的式子。
  • 优先级:运算符执行的优先级,优先级高的先执行。
  • 结合性:当优先级相同,可以通过结合性确定表达式如何结合来确定执行顺序。
  • 类别:参与当前运算符运算的操作数个数。

算数运算符

  • +:相加。
  • -:相减。
  • /:除号两端都是整数时,执行的是整数除法,两端只有一个浮点数,就执行浮点数除法。
  • %:取余,取模,运算的两个操作数只能是整数,结果是整除后的余数。

赋值运算符

  • =:作用是将一个值赋给另一个变量,和数学中的等号含义不同。

自增和自减运算符

  • ++:在原有的数字基础上+1,如a = 1; a++;那么a输出2。
  • --:在原有的数字基础上+1,如a = 2; a--;那么a输出1。

位运算符

  • 置1:或位,REG |= (1 << 2) | (1 << 5) | (1 << 7);
  • 清零:与位,REG &= ~((1 << 1) | (1 << 4) | (1 << 6));
  • 取反:异或位,REG ^= (1 << 0) | (1 << 3) | (1 << 5);

关系运算符

  • 本质是比较运算,关系运算符组成的表达式,即为关系表达式。
  • 关系表达式的结果是bool类型,0(false)错、1(true)对,主要应用于条件判断语句和循环控制语句中,在写代码时建议反过来写容易辨别赋值和运算,如 4 == age。
  • ->    大于
  • <    小于
  • ->=   大于等于
  • <=   小于等于
  • = =  等于
  • !=   不等于