单片机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都不成立,执行
}
|