智能汽车嵌入式软件开发基础篇-嵌入式C语言基础1

数据类型  
    基本类型:整型  浮点型  字符型    枚举
    构造类型:数组  结构体  共用体
    指针类型:
    空类型:void
    10  100
    int a ----->0x1000000

整型:二进制: 0 1    0101
      八进制:0 7   111  ------ %o
    十进制:0 9    100 ------ %d
    十六进制:0 ~F : 0xff -----> %x

    格式转换,10进制转2进制,x/2取余,从下到上排列

如100 ------->1100100 ---------> 0 * 2^0 + 0 * 2^1 + 1*2^2....

    100    0
     50    0
     25    1
     12    0
      6    0
      3    1    
      1

  数据类型,在智能汽车嵌入式软件开发过程中,是核心配置的类型,决定数据的长度,芯片资源的大小

    字符型: char     1 byte= 8 bit 0 ~ 2^8-1 
    短整型:short    2 byte= 16bit 0 ~ 2^16 -1 
    整型:  int      2 byte(16位)  4byte(32位) 0 ~2 ^ 32 -1 

    补码 = 原码取反 + 1 负数:31:1  正数:31:0
    负数存储在内存中是补码
    %d:打印时原码
    %x:打印的是补码

字符:英文字母 数字  标点符号          

    'a','A'... 一个汉字 = 两个字符
转义字符:


浮点数:
    float:单精度   6~7位  %f      4byte 
    double:双精度  16~17位 %lf    8byte

小数:3.14 
指数:2.14E3


    char        1byte  -128~127 
    short       2byte  -32768~32767
    int         4byte  -2^31 ~ 2^31 -1

    float       4byte 
    double      8byte


long  长型
short 短型
signed 有符号
unsigned 无符号

自动转换
    int a = 1.5     float ------> int
    float b = 1     int -------->float

    char,short ---->int ---->unsigned ------>long ------>double<---float
 

运算符与表达式
    (1)算术: + - * / %
        运算的数据都是整型 结果也时整型  有浮点数 double
        取模运算两侧的数据都是整型
    (2)关系:
        < : a < 4
        <=:
        > :
        >=:
        ==:
        !=:
    非0为真  0:假
    1 :真
    0 :假

    结合性:左---->右   6 > 3 > 1 
    优先级: 1 == 3 < 4 1 
    (3)逻辑:&& || !
    
        A        B        &&   || 
        1        1        1     1
        1        0        0     1
        0        1        0     1
        0        0        0     0

        A       !
        1       0
        0       1
    (4)赋值
        变量 = 表达式
        i = j = 3 + 4;
    
        +=    a += 3   a = a + 3;
        -=
        *=
        /=
        %=

    
表达式:逗号表达式  
    表达式1,表达式2.....表达式n

    b = (a = 4,3 * 4,a * 2)
条件表达式
    表达式1 ? 表达式2:表达式3    

    max = ((a > b) ? a : b);
    结合性:右---->左
    a > b ? a:b >c?b:c

位运算,是芯片的地址左移>>,切换地址,基址+位运算,获得不同的IO口

位运算:
    &:按位与
    |:按位或
    ^:异或
    ~:按位取反
    <<:左移
    >>:右移

    5 & 4 =4 
    0 1 0 1
    0 1 0 0

    10 | 25 = 27 

    1 0 1 0
      1 1 0 0 1
      1 1 0 1 1

      30 ^ 15= 1 0 0 0 1 17
      1 1 1 1 0
      0 1 1 1 1

    ~50 
    0 0 1 1 0 0 1 0

    1 1 0 0 1 1 0 1 = 205

    0x3 << 5 = 96
    0x8 >> 2 = 2

清0:&
置1:|

汽车上控制语句,基本都是事件性语句,基本都用if 语句切换到下一个状态,状态机语句

条件语句 
    if()
    {
        
    }

    if ()
    {
    
    }
    else
    {
        
    }

    if ()
    {
    
    }
    else if()
    {
        
    }
    else
    {
    
    }

    if ()
    {
        if ()
        {
        
        }else{
        
        }
    }else{
        
    }

    switch(整型表达式){
        case 数值1:语句1;break;        
        case 数值2:语句2;break;        
        case 数值3:语句3;break;        
        case 数值4:语句4;break;        
        ......
        default:语句n+1;
    }

循环语句  循环控制语句 
for  while do...while 


while(条件){
    code
}
条件不成立  退出循环

do{

}while(条件);


for (index = 0;index < 10;index++)


break:跳出循环
continue:跳过本次循环

goto:

你可能感兴趣的:(智能汽车软件开发,汽车,c语言,算法,自动驾驶,mcu,stm32)