嵌入式学习第二天

 C语言基础:

1.进制转换

二进制、八进制、十六进制 -> 十进制 
        对应位 * 对应位的权值再求和
十进制 -> 二进制、八进制、十六进制
        十进制数除以进制数得到的余数逆序排列
二进制 八进制 十六进制:
    八进制1位对应二进制3位
    十六进制1位对应二进制4位

2.gcc编译的流程步骤:

gcc filename.c 
1.预处理
        处理和#号相关代码
        (1)头文件展开
        #include 
        (2)宏定义替换
        #define  M  100  
        (3)条件编译 gcc -E filename.c -o filename.i 
        #if #elif #else #endif #ifndef #ifdef  
    2.编译
        将C语言程序编译成汇编代码 gcc -S filename.c -o filename.s 
    3.汇编
        将汇编代码编译成二进制代码 gcc -c filename.c -o filename.o 
    4.链接 
        将多个二进制代码链接成为一个可执行程序 gcc filename.c -o filename 

3.基本数据类型、运算符、表达式

(1)基本数据类型:
            整形数据 short int long 
                   short (signed short)
                          unsigned short 
                    int   (signed int)
                          unsigned int 
                    long  (signed long)
                          unsigned long 
               名称                                                 占内存空间          值域范围                    存储方式
            short: 短整形                                  2个字节空间         -32768 - 32767                 补码
            unsigned short: 无符号短整型        2个字节空间         0 - 65535               对应的二进制数
            int:   整形                                        4个字节空间         -21亿 - 21亿                          补码
            unsigned int:   无符号整形             4个字节空间         0 - 42亿                    对应的二进制数
            long:  长整型                                  8个字节空间         -2^63 - 2^63 -1                 补码
            unsigned long:  无符号长整型        8个字节空间         0 - 2^64                    对应的二进制数     (2)浮点型数据 float double, 所有的浮点数类型均为有符号类型,没有无符号类型的概念

   名称                                           占内存空间大小                                            值域范围  

    float     单精度浮点数类型(最多表示6-8位有效数字)     4个字节         -3.4*10^38 - 1.18*10^-38   
                                                                                                                  1.18*16^-38 - 3.4*10^38
   存储方式:1位符号位 + 8位指数位 + 23位尾数位

   double   双精度浮点数类型(最多表示12-14位有效数字)   8个字节   -1.80*10^308 - 2.23*10^-308                                                                                                               2.23*10^-308 - 1.80*10^308
   存储方式:1位符号位 + 11位指数位 + 52位尾数位   
      浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数  (float:127 double:1023)以二进制形式存入指数位中                                                                   
   (3)字符型:char 

              ASCII码表:
            字符和数字的对应关系
     名称             内存空间大小      值域范围            存储方式 

unsigned char       1个字节          0 - 255             存储字符在ASCII码表中对应数字的二进制形式 
  signed char         1个字节        -128 - 127 
(4)逻辑类型: bool 

            名称                内存空间大小            值域范围                存储方式 
       泊尔类型 bool       1个字节                 true                               1
                                                                  false                              0

在C语言中所有的非0值均为逻辑真值, 0值为逻辑假值
 

4.常量和变量:

(1)整形常量:
        默认为int类型
        100         int类型
        100l        long类型
        100u        unsigned int类型 
        100ul       unsigned long类型

        0123        八进制常量
        0x1a        十六进制常量

(2)整形变量:(变量拥有存储空间,也有值域范围)
        1.变量要先定义再使用
            1.变量定义的形式:
                (1)变量名可以由字母、数字、下划线构成不能以数字开头
                (2)变量名不能与C语言关键字重名
                (3)变量名最好不要与库函数重名
                (4)变量名最好是见名知意 

 (3) 浮点型常量:
        默认为double类型 
        3.1415          double类型
        3.1415f         float类型 

  (4) 浮点型变量:
        double d;
        float f;

  (5)字符型常量:

'a'   'A'   'z'   'Z'  '?'   '#'  '~'   ' '
 '\'' : '号'  \n' : 换行符  '\t' : 横向制表符  '\v' : 纵向制表符  '\r' : 回车符  '\b' : 退格符  '\\' : \符 

       '0'  : 48 
        0    : 0
        '\0' : ASCII码值为0 用来标识字符串的结尾
        '\123' : 八进制123对应的字符
        '\x32' : 十六进制32对应的字符 

 (6)字符型变量:
        char ch;嵌入式学习第二天_第1张图片

你可能感兴趣的:(嵌入式,c语言,嵌入式硬件,学习)