当前位置: 首页 > news >正文

嵌入式学习之路

嵌入式

  • C语言
    • Day1(7.1)
    • Day2(7.23)
      • 4.常量
        • 4.1 常量的概念
        • 4.2 常量的分类
        • 4.3 标识符常量的定义方式
      • 5.二进制
        • 5.1 进制
        • 5.2 进制转换
        • 5.3 原码、反码、补码
      • 第 6 章 数据类型
        • 6.1 整数类型
        • 6.2 浮点类型
        • 附录 十进制小数转二进制小数规则
    • Day3(7.24)

C语言

Day1(7.1)

Day2(7.23)

4.常量

4.1 常量的概念

程序运行时,其值不能改变的量,即为常量。

4.2 常量的分类

字面量常量和标识符常量

4.3 标识符常量的定义方式

第一种方式 宏定义方式
#define 常量名 值 注意:不能加分号!!!
第二种方式 const 关键字方式
const 数据类型 常量名 = 值; 数据类型 const 常量名 = 值;
== 两种方式的区别==

  1. 类型检查
    #define 方式不能进行类型检查
    const 关键字方式可以进行类型检查
  2. 执行时机不同
    #define 方式在预处理阶段进行文本替换
    const 关键字方式,在程序执行的时候,在内存中分配空间

5.二进制

5.1 进制

不同进制表示的字面量整数

  1. 直接写是十进制
  2. 0b开头是二进制
  3. 0x开头是十六进制

不同进制的输出格式占位符

%d十进制
%x十六进制
%X十六进制
%#x、%#X十六进制

5.2 进制转换

简单的换算方法:8421码
二进制转十进制:

从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和。

十进制转二进制:

将该数不断除以2,直到商为0为止,然后将每步得到的余数倒过来,就是对应的二进制。

十六进制转十进制:

从最低位开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和。

十进制转十六进制:

将该数不断除以16,直到商为0为止,然后将每步得到的余数倒过来,就是对应的十六进制。

二进制转十六进制:

低位开始,将二进制数每四位一组,转成对应的十六进制数即可。

十六进制转二进制:

将十六进制数每1位,转成对应的4位的一个二进制数即可。

5.3 原码、反码、补码
  1. 正数和0
    原码、反码、补码都一样
  2. 负数
    原码:符号位是1,
    反码:原码基础上,符号位不变,其他位取反
    补码:反码基础上,加 1

第 6 章 数据类型

6.1 整数类型

整型划分

类型类型简写说明存储大小(字节)
unsigned short intunsigned short无符号短整型2字节
signed short intshort、signed short有符号短整型2字节
unsigned intunsigned无符号整型2或4字节
signed intint、signed有符号整型2或4字节
unsigned long intunsigned long无符号长整型4或8字节
signed long intsigned long、long有符号长整型4或8字节
unsigned long long intunsigned long long无符号长长整型8字节
signed long long intsigned long long、long long有符号长长整型8字节

注意:
(1)各类型存储大小受到操作系统、编译器、硬件平台的影响。
(2)整型分为有符号signed和无符号unsigned两种,默认是signed。
(3)开发中使用整型一般用int型,如果不足以表示大数,可以使用long long。

字面量后缀(不需要记)

数据类型字面量后缀数据类型字面量后缀
intunsigned intU
longL、lunsigned longUL、ul
long longLL、llunsigned long longULL、LLU、llu、ull

注意: 字面量后缀不区分大小写。

格式占位符

数据类型格式占位符数据类型格式占位符
int%dunsigned int%u
short%hdunsigned short%hu
long%ldunsigned long%lu
long long%lldunsigned long long%llu

精确宽度整数类型
定义在标准库头文件 <stdint.h> 中:

int8_t
int16_t
int32_t
int64_t
uint8_t
uint16_t
uint32_t
uint64_t
6.2 浮点类型

浮点类型划分

数据类型说明存储长度有效小数位数
float单精度4字节6~9
double双精度8字节15~18
long double长双精度10或16字节18及以上

总结:

(1)各类型的存储大小和精度受到操作系统、编译器、硬件平台的影响。
(2)浮点型数据有两种表示形式。
​ * 十进制数形式:如:5.12、512.0f、.512(0.512 可以省略 0)
​ * 科学计数法形式:如:5.12e2、5.12E-2
(3)开发中用到浮点型数字,建议使用 double

字面量后缀(不需要记)

类型字面量后缀
floatF、f
double
long doubleL、l

注意: 字面量后缀不区分大小写。

格式占位符

数据类型十进制小数形式对应的占位符科学计数法形式对应的占位符
float%f%e
double%lf%le
long double%Lf%le

**注意:**printf 打印 double 类型数据,可以使用 %f 和 %lf; 如果 scanf() 获取输入的double类型只能使用 %lf。

浮点类型存储原理

符号位,决定正负
指数位,决定可表示数字范围
尾数位,决定精度

附录 十进制小数转二进制小数规则

使用乘 2 取整法,依次记录整数部分,直到达到所需精度或小数部分为0。

以 0.625 为例:

0.625 × 2 = 1.25,记录整数部分 1,小数部分 0.25

0.25 × 2 = 0.5,记录整数部分 0,小数部分 0.5

0.5 × 2 = 1.0,记录整数部分 1,小数部分 0.0,转换结束

Day3(7.24)

http://www.lryc.cn/news/596793.html

相关文章:

  • Python笔记之跨文件实例化、跨文件调用、导入库
  • 为什么本地ip记录成0.0.0.1
  • 基于Python flask的常用AI工具功能数据分析与可视化系统设计与实现,技术包括LSTM、SVM、朴素贝叶斯三种算法,echart可视化
  • 慢 SQL接口性能优化实战
  • Fast Frequency Estimation Algorithm by Least Squares Phase Unwrapping
  • USB4.0:开启高速数据传输的新时代
  • 当if else比较多时候应该怎么避免?
  • MCP与企业数据集成:ERP、CRM、数据仓库的统一接入
  • #Linux权限管理:从“Permission denied“到系统安全大师
  • uniapp自定义圆形勾选框和全选框
  • iOS 抓包工具有哪些?2025实用指南与场景推荐
  • 重磅发布:Oracle ADG 一键自动化搭建脚本
  • 离线快速处理PDF格式转化的方案
  • 揭秘ThreadLocal核心原理与应用
  • Linux文件系统理解1
  • NLP自然语言处理的一些疑点整理
  • vue2的scoped 原理
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的实习管理系统(附源码+数据库+毕业论文+项目部署视频教程+项目所需软件工具)
  • Python通关秘籍(五)数据结构——元组
  • linux 驱动 - v4l2 驱动框架
  • Linux 重定向和缓冲区
  • docker-desktop启动失败
  • leetcode 1695. 删除子数组的最大得分 中等
  • importlib.import_module() 的用法与实战案例
  • MySQL 学习一 存储结构和log
  • HTML结构解析
  • SpringAOP的实现原理和场景
  • SQLAlchemy 2.0简单使用
  • c++day05(ASCII)
  • 性能测试-从0到1搭建性能测试环境Jmeter+Grafana+influxDB+Prometheus+Linux