嵌入式系统基础概念(一)二进制和十六进制
引言
进制表示和转换是嵌入式开发人员的基本功。在开发,调试过程中,大量阅读芯片手册,查看MCU寄存器,内存等都会涉及到十六进制,二进制等的快速切换,以理解各个bit位含义和内容。另外C代码中也经常用到位操作。
本文面向的读者是希望通过学习能够掌握二进制和十六进制表示,并熟练二进制,十六进制间转换。
建议学习顺序,理解十进制数值如何分解,然后花足够时间理解引例部分和 106 的两种表示的例子。概念
然后就是多练习二进制,十六进制,十进制转换。技能
需要熟练三种进制数值对照表。掌握PC自带 计算器(程序员模式)进制切换。工具
1. 十进制(逢十进一)数值分解
基础数学表示
...
...
举例 1984,数字 1 在千位(),数字 9 在百位(
),数字 8 在十位(
),数字 4 在个位(
),分解它为
1个1000,9个100,8个10和4个1,即:
.由此看出
数值 = 所有数字和对应位乘积的和。
另外十进制
每位上的数字只可能是 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
每个位是以10为底的基 {...,
,
,
,
,...}
练习1 273.15怎么表示成(数字x位)的组合?
2. 引例
开始二进制之前, 我希望通过一个例子让读者区分开数值和表示形式两个概念。
比如我们说温度,“今天20(摄氏)度”,这里的 20 就是数值,(摄氏)度 就是摄氏温标下表示形式
如果你知道除了摄氏温度还有华氏温度,并且二者可以转换参见百度百科华氏与摄氏
华氏度 = 32°F+ 摄氏度 × 1.8
同样你可以说,“今天68华氏度”,其实说的是同样的内容。
从这个例子,我们看出同样一个内容,我们其实可以表示成不同 数值+表示形式。
思考,生活还有哪些例子,同样内容不同说法?比如,身高,体重,时间。
3.1 二进制(逢二进一)
应用上面的概念,一百零六可以表示
同样也可以表示
如果仔细看
所以
我们发现乘号前面只有 {0, 1},如果我们像表示十进制数一样,只提取每位前面的数字
就得到(习惯表示二进制时,在右下角添加数字2以区别十进制数)
这就是二进制
每位上的数字只可能是 {0, 1}
每个位是以2为底的基 {...,
,
,
,
,...}
对比十进制,区别在于
位上的数字,二进制只有0和1,没有2,3,。。。,9,
位不再是 。。。千,百,十,个,十分,。。。而是,。。。,bit2,bit1,bit0等,发音比特二,比特一,比特零
注意:比特+负数在浮点数计算会用到
再看一遍这个例子
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 1 1 0 1 0 1 0
练习2 二进制 换做10进制表示?
提示 填写下面8个?处,分别是0还是1?然后按上面公式计算结果
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
? ? ? ? ? ? ? ?
打开计算器的程序员模式,手动切换二进制,输入10101001,然后切换回十进制并对照你的计算结果。
理解二进制之后,你是不是也能看懂下面的笑话了。
建议理解二进制和十进制间的区别和联系以及数值和表示等概念,再继续后面学习。
3.2 十六进制(逢十六进一)
恭喜你已经理解二进制。下面来看十六进制,就非常容易了。
每位上的数字只可能是 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}
每个位是以16为底的基 {...,
,
,
,
,...}
十六进制表示以 0x or 0X 开始(这里是数字零不是字母O),例如 0x12AD
下面这个对照表需要记忆,十六进制1个数字 <------> 4个二进制数字
十六进制 | 十进制 | 二进制 |
---|---|---|
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 2 | 0010 |
3 | 3 | 0011 |
4 | 4 | 0100 |
5 | 5 | 0101 |
6 | 6 | 0110 |
7 | 7 | 0111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
A or a | 10 | 1010 |
B or b | 11 | 1011 |
C or c | 12 | 1100 |
D or d | 13 | 1101 |
E or e | 14 | 1110 |
F or f | 15 | 1111 |
举例 十六进制 0x1E9B 转换成二进制
1 E 9 B
0001 1110 1001 1011
练习3 把下图中十六进制 0x078E 3AD1 转换成二进制?引用TM4C123GH6PM data sheet
总结
本文从大家熟悉的十进制数值表示入手,并借助温度两种不同表示(华氏和摄氏)的例子,过渡到二进制和十六进制表示。
同时,列举实际工作中用到的场景和例子。
答案1
答案2
答案3
嵌入式系统基础概念(一)二进制和十六进制相关推荐
- 嵌入式系统基础知识总结
一.嵌入式系统基础 1.嵌入式系统的定义 1.1 定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 1.2 嵌入式系统发 ...
- 嵌入式系统设计师考试笔记之嵌入式系统基础知识
以下是转帖一位网友的嵌考笔记 嵌入式系统设计师考试笔记之嵌入式系统基础知识 欧浩源(ohy3686@qq.com) 20080818 一.引言 自<嵌入式系统设计师考试复习笔记之存储管理篇> ...
- 嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程
1. 嵌入式系统的概念 嵌入式系统( Embedded system) , 是一种 "完全嵌入受控器件内部,为特定应用而设计的专用计算机系统"以应用为中心,以计算机技术为基础, ...
- 嵌入式系统基础及知识及接口技术总结
嵌入式系统基础 1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. (2)嵌入式系统发展的4个阶段 ...
- 【嵌入式系统基础实验一】-----led流水灯及串口通信的HAL库方式和寄存器编程方式实现,输出波形检测
文章目录 1.实验知识点简要解析 1.1串口通信协议 1.2 RS232.485电平与TTL电平的区别 1.3 USB/TTL转232"模块 2.LED流水灯的寄存器地址 和HAL库这两种方 ...
- 《嵌入式系统设计师》笔记之一——嵌入式系统基础知识
1.1 嵌入式系统的定义和组成 1.1.1 嵌入式系统的定义 以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 1.1.2 嵌入式 ...
- 嵌入式设计---(1)嵌入式系统基础
1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. (2)嵌入式系统发展的4个阶段:无操作系统阶段 ...
- ARM微控制器与嵌入式系统 基础知识
学习地址 2.1 基础概念 机械计算 图灵 :一个计算的问题一定可以拆解为有限个计算的集合(可计算性) 01 冯诺依曼结构:运算器.控制器.存储器.输入设备.输出设备 模拟信号 连续 数字信号 离散 ...
- 嵌入式系统基础知识该如何学习
嵌入式的学习不是那么容易的,学习嵌入式会有一定的技术门槛.但很多学者连一点计算机的基础都没有,就来学习嵌入式,真所谓是明知山有虎,偏往山中行.是什么原因让他们改行来学习嵌入式呢?其实原因很简单也很现实 ...
最新文章
- 总结三种 MySQL 大表优化方案
- 【原】iOS学习之UITabBar的隐藏
- Android 内存优化
- vue-router(2)
- html固定table表头的实现思路
- nginx的root alias 指令
- vue+vant 移动端H5 商城项目_04
- kvm虚拟机网络设置隔离模式(一键shell脚本)
- 鸿蒙将用于工业;三星新芯片支持 5G 和 AI;Material UI 4.2.1 发布 | 极客头条
- 排序算法python实现_用Python,Java和C / C ++实现的选择排序算法
- rpc服务器进不了系统,Win7系统RPC服务器不可用怎么解决?
- 【路径规划】基于matlab人工势场法机器人自动避障【含Matlab源码 620期】
- 《高等代数学》(姚慕生),习题1.3:n阶行列式
- B站视频下载与字幕下载转换
- 采用Minitab进行logistic回归分析
- Android简单模仿微信扫一扫二维码
- python 英语词频统计_Python实现统计英文文章词频的方法分析
- 构建一个属于自己的centos7-php80-swoole的Docker镜像
- 女孩都喜欢什么类型的男生?
- css 文本排版方向,古文式排版等
热门文章
- kicad绿油开窗_KICAD新手答疑解惑专帖
- shell-条件判断里的“并且“和“或者“
- 使用docker安装gitlab以及gitlab简单使用
- Word中利用字体把文字转换为特殊图案(转)
- Windows10下修改IP和MAC方法
- 多个DHL快递物流怎么同时查询最方便
- 湖北省高职计算机本科学校有哪些,盘点最新湖北十大高职高专院校排名,湖北最好的高职院校有哪些?...
- 如何用mysql对淘宝用户行为进行分析
- Android扫描蓝牙问题,你是不是位置权限和GPS都打开了还是扫不出东西
- Deno 1.0,来了解一下