C语言ing......

168 阅读7分钟

学习时间表

阶段学习时间上午学习时间下午学习时间晚上复习时间结束时间
第一阶段/C语言104小时8:00 - 12:0013:00 - 17:0018:00 - 10:005月16日
第二阶段/STM3226小时8:00 - 11:0012:00 - 15:0016:00 - 18:005月20日
第三阶段/project5小时8:00 - 10:0011:00 - 13:0014:00 - 15:005月21日
第四阶段5月31日

5月8日学习内容

c语言特点
  1. 基础性语言
  2. 语言简洁 紧凑 方便 灵活
  3. 运算符 数据结构丰富
  4. 结构性 模块化编程
  5. 移植性号 执行效率高
  6. 允许直接对硬件操作
C源文件执行
  1. hello.c
  2. 源文件
  3. 预处理
  4. 编译
  5. 汇编
  6. 链接
  7. 可执行文件
数据类型 基本数据类型
  1. 数据类型所占字节数随(机器硬件不同而不同)
  2. 2进制格式最典型的计算方式 除2取余 倒序排列
  3. 如果是8进制 16进制 靠除8 16 取余倒序排列 10进制演变其他进制
8421法
  1. 转换8进制 3位一组

  2. 将2进制数每一组分组后 从最低位开始 不足三位的在高位补0 例如

  3. (11111110)2 = (011)(111)(110)8

  4. 分别将每组三位的2进制数转换成8进制数 可以使用如下方法

    1. 取每组三位二进制数的最高位 (左边的位) 乘以 2^2=4

    2. 取每组三位二进制数的中间位 乘以2^1=2

    3. 取每组三位二进制的最低为 (右边的位)乘以2^0=1

    4. 然后将三个乘积相加 得到八位进制数

    5. 以第一组(011)2为例

      1. 最高位 0 乘以4 得到0
      2. 中间位 1 乘以2 得到 2
      3. 最低位 1 乘以1 得到 1
      4. 三组乘积相加 0 + 2 + 1 第一组对应八进制位数 = 3
16进制 8421法则
  1. 8进制到16进制就是两位一组
  2. 16进制中表示11 12 13 14 15 分别用A-F表示
  3. A = 10
  4. B = 11
  5. C = 12
  6. D = 13
  7. E = 14
  8. F = 15
C语言中不能赋值成2进制?
  1. 转换成8进制 10进制 16进制
数据类型 / 基本数据类型
chineseenglish字节数概述
整型int4字节(32位)表示整数
浮点型float4字节(32位)表示实数 包括单精度浮点数 浮点数用于表示带小数点的数值
浮点型double8字节(64位)同float
字符型char1字节(8位)用于表示单个字符
布尔型bool1字节(8位)用于表示布尔值
常量/分类
  1. 常量:在程序执行过程中值不会发生变化的量

  2. 分类:整数常量 实例常量 字符常量 字符串常量 标识常量

    1. 整数常量:1,780,76,520
    2. 实例常量:3.14,5.26,1.999
    3. 字符常量:由单引号引起来的单个的字符或转义字符 '\015' '\x7f'
    4. 字符串常量:由双引号引起来的一个或者多个字符组成的序列
声明变量
  1. [存储类型] 数据类型 标识符 = 值
  2. TYPE NAME = VALUE;
标识常量 / 宏定义
  1. 是一种预处理指令 用于为一个值或者表达式创建一个简单易记的别名
  2. // 格式如下
    #define 标识符(别名名称) 常量值(可以是数字 字符 字符串等常量)
    #define PI 3.14159
    
数据类型/存储类型
  1. auto / 默认 自动分配空间 自动回收空间
  2. static / 静态型 自动初始化为0或空值 并值其变量的值有继承性 / 补充:常用于修饰变量或者函数
  3. register / 寄存器类型 只能定义局部变量 不可定义全局变量 大小有限制 只能定义32位大小的数据类型 如double不可以
  4. extern(说明型)/ 意味着不能改变被说明的变量的值
  5. 局部变量默认为auto型
  6. register型变量个数受限 且不能为long double float型
  7. 局部static变量具有全局寿命和局部可见性
  8. 局部static变量具有可继承性
  9. extern不是变量定义 可扩展外部变量作用域
运算符和表达式

加分号就叫语句 不加就叫表达式

i++ / ++i
  1. 运算符在前 先进行计算 在取变量值使用
  2. 变量在前 先取变量值使用 在进行计算
  3. int i = 1;
    i++; 表达式值为1 i值为2
    ++i; 表达式值为2 i值为2
    
输入输出专题
  1. input & output / I/O(标准IO 文件IO)

  2. 格式化输入输出函数 scanf printf

  3. 字符输入输出函数:getchar putchar

  4. 字符串输入输出函数:gets(!) puts

  5. printf 函数用于输出集格式化的字符到 控制台 可以输出各种类型的数据 如字符串 整数 浮点数

  6. printf("format-string", argument-list);
    // 其中 `format-string` 是格式化字符串 它包含普通字符串和转换说明符 用来指定输出格式 `argument-list`是一个或多个要输出数据和列表
    
    1. 常用转换说明符

      1. %d 十进制整数 int a = 567 printf("%d", a) 567
      2. %u 不带符号的十进制整数 int a = 567 printf("%u", a) 567
      3. %f 输出浮点数 float a = 567 printf("%f", a) 567.78900
      4. %c 输出字符 char a = 65 printf("%c", a) A
      5. %s 输出字符串 printf("%s", "ABC") ABC
      6. \n 就是换行符
进制转换
  1. 数字转换2进制 除2取余 倒叙排列
  2. 2进制转换8进制 3位一组 高位地位 2^2/2^1/2^0 乘积相加
  3. 8进制转换16进制 两位一组
  4. 2进制转换10进制 / 权值展开法 1248法
  5. 进制转换形式转换技巧
    数值转换转换2进制除2取余 / 倒叙取余
    2进制转换8进制3位一组 高位补0从左到右 高位相乘 / 2^2 2^1 2^0 乘积相加
    8进制转换10进制每一位的权值都是8的幂次方,从右往左数,第一位的权值为8^0,第二位的权值为8^1,第三位的权值为8^2,以此类推。因此,八进制数76展开式中的第一项为7×8^1。89 8*8^1+9 * 8^0 73
    2进制转换10进制权值展开法/1248从左开始 高位相乘 / 2^0 2^1 2^2 2^3 高位每一项和次方高项相乘
    10进制转换2进制不断除以2倒叙排列
    10进制转换8进制除以8得到商和余数 余数记录下来 倒序排列
    八进制转换16进制376位数转换为2进制3位一组 然后四位一组 从右往左 高位补0 然后8421法则1110 1111 1 * 2^3+1 * 2^2+1 * 2^1+1
    16进制转换为2进制1B转换 B十进制就是110001 1011
练习:进制之间的转换