单片机C语言知识学习
1.c语言的数据类型 |
| 数据类型 | 位数 | 字节数 | 值域 | 备注: | bit | 1 |
| 0~1 | 汉相张良遇黄石公的故事,圯桥三进履,道,德,仁,义,礼五者,就是做人,处世的正道,守正方能出奇。 | signed char | 8 | 1 | -128~+127 | unsigned char | 8 | 1 | 0~255 | enum | 16 | 2 | -32768-+32767 | signed short | 16 |
| -32768-+32767 | unsigned short | 16 | 2 | 0~65535 | signed int | 16 | 2 | -32768-+32767 | unsigned int | 16 | 2 | 0~65535 | signed long | 32 | 4 | -2147483648~2147483647 | unsigned long | 32 | 4 | 0~4294967295 | float | 32 | 4 | 0.175494E-38~0.402823E+38 | sbit | 1 |
| 0~1 | sfr | 8 | 1 | 0~255 | sfr16 | 16 | 2 | 0~65535 |
2.C语言运算c语言运算 | 备注: |
|
|
|
| 运算符 | 范例 | 说明 |
|
|
|
|
| + | a+b | a变量值和b变量值相加 |
|
|
|
| - | a-b | a变量值和b变量值相减 |
|
|
|
| * | a*b | a 变量值乘以b变量值 |
|
|
|
| / | a/b | a 变量值除以b变量值 |
|
|
|
| % | a%b | 取a变量除以b变量值的余数 |
|
|
|
| = | a=6 | 将6设定给a变量,即a变量值等于6 |
|
|
|
| += | a+=b | 等同于a=a+b,将a和b相加的结果又存回a |
|
|
|
| -= | a-=b | 等同于a=a-b,将a和b相减的结果又存回a |
|
|
|
| *= | a*=b | 等同于a=a*b,将a和b相乘的结果又存回a |
|
|
|
| /= | a/=b | 等同于a=a/b,将a和b相除的结果又存回a |
|
|
|
| %= | a%=b | 等同于a=a%b,将a和b相除的余数又存回a |
|
|
|
| ++ | a++ | a的值加1,即a=a+1 | a=1; |
| a=1; |
| -- | a-- | a的值减1,即a=a-1 | b=++a; |
| b=a++; |
| > | a>b | 测试a是否大于b | 运行结果是a=2,b=2 |
| 运行结果是a=2,b=1 |
| < | a<b | 测试a是否小于b | 先++后赋值 |
| 先赋值后++ |
| == | a==b | 测试a是否等于b |
|
|
|
| >= | a>=b | 测试a是否大于或等于b |
|
|
|
| <= | a<=b | 测试a是否小于或等于b |
|
|
|
| != | a!=b | 测试a是否不等于b |
|
|
|
| && | a&&b | a 和 b 作逻辑AND,两个变量都是真,结果才是'真'否则结果为'0' |
|
|
|
| || | a||b | a 和 b 作逻辑OR,只要有一个变量为真结果就是真 |
|
|
|
| ! | !a | 将a 变量的值取反,即原来的'真'变为'假','假'变为'真' |
|
|
|
| >> | a>>b | 将a按位右移b个位 |
|
|
|
| << | a<<b | 将a按位左移b个位,右侧补‘0’ |
|
|
|
| | | a|b | a 和 b 的按位做OR运算 |
|
|
|
| & | a&b | a 和 b 的按位做AND运算 |
|
|
|
| ^ | a^b | a 和 b 的按位做XOR运算 |
|
|
|
| ~ | ~a | 将a 的每一位取反 |
|
|
|
| & | a=&b | 将b变量的地址存入a寄存器 |
|
|
|
| * | *a | 用来取寄存器所指的地址内的值 |
|
|
|
|
|
|
|
|
|
|
|
3.C语言的流程控制 if语句3.1
if(条件表达式)
{
动作1//如果条件表达式的值为真,执行动作1。否则跳过往下执行程序
}
3.2
if(条件表达式)
{
动作1//如果条件表达式的值为真,执行动作1.跳过动作2往下执行
}
else
{
动作2//如果条件表达式的值为假,跳过动作1,执行动作2.
}
3.3
if(条件表达式1)
{
if(条件表达式2)
{
if(条件表达式3)
{
动作1//表达式1,2,3都为真,执行动作1
}
else
{
动作2//表达式1,2为真,3为假,执行动作2
}
}
else
{
动作3//表达式1为真,表达式2为假,执行动作3
}
}
else
{
动作4//表达式1为假,时执行动作4
}
3.4
if(条件表达式1)
{
动作1//条件表达式1成立执行
}
else if (条件表达式2)
{
动作2//条件表达式1不成立,条件表达式2成立执行
}
else if(条件表达式3)
{
动作3//条件表达式1,2不成立,条件表达式3成立执行
}
else
{
动作4//条件表达式1,2,3都不成立,执行
}
|