引言

进制表示和转换是嵌入式开发人员的基本功。在开发,调试过程中,大量阅读芯片手册,查看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  定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 1.2  嵌入式系统发 ...

  2. 嵌入式系统设计师考试笔记之嵌入式系统基础知识

    以下是转帖一位网友的嵌考笔记 嵌入式系统设计师考试笔记之嵌入式系统基础知识 欧浩源(ohy3686@qq.com) 20080818 一.引言 自<嵌入式系统设计师考试复习笔记之存储管理篇> ...

  3. 嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程

    1. 嵌入式系统的概念   嵌入式系统( Embedded system) , 是一种 "完全嵌入受控器件内部,为特定应用而设计的专用计算机系统"以应用为中心,以计算机技术为基础, ...

  4. 嵌入式系统基础及知识及接口技术总结

    嵌入式系统基础 1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. (2)嵌入式系统发展的4个阶段 ...

  5. 【嵌入式系统基础实验一】-----led流水灯及串口通信的HAL库方式和寄存器编程方式实现,输出波形检测

    文章目录 1.实验知识点简要解析 1.1串口通信协议 1.2 RS232.485电平与TTL电平的区别 1.3 USB/TTL转232"模块 2.LED流水灯的寄存器地址 和HAL库这两种方 ...

  6. 《嵌入式系统设计师》笔记之一——嵌入式系统基础知识

    1.1 嵌入式系统的定义和组成 1.1.1 嵌入式系统的定义 以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. 1.1.2 嵌入式 ...

  7. 嵌入式设计---(1)嵌入式系统基础

    1.嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能.可靠性.成本.体积.功耗严格要求的专用计算机系统. (2)嵌入式系统发展的4个阶段:无操作系统阶段 ...

  8. ARM微控制器与嵌入式系统 基础知识

    学习地址 2.1 基础概念 机械计算 图灵 :一个计算的问题一定可以拆解为有限个计算的集合(可计算性) 01 冯诺依曼结构:运算器.控制器.存储器.输入设备.输出设备 模拟信号 连续 数字信号 离散 ...

  9. 嵌入式系统基础知识该如何学习

    嵌入式的学习不是那么容易的,学习嵌入式会有一定的技术门槛.但很多学者连一点计算机的基础都没有,就来学习嵌入式,真所谓是明知山有虎,偏往山中行.是什么原因让他们改行来学习嵌入式呢?其实原因很简单也很现实 ...

最新文章

  1. 总结三种 MySQL 大表优化方案
  2. 【原】iOS学习之UITabBar的隐藏
  3. Android 内存优化
  4. vue-router(2)
  5. html固定table表头的实现思路
  6. nginx的root alias 指令
  7. vue+vant 移动端H5 商城项目_04
  8. kvm虚拟机网络设置隔离模式(一键shell脚本)
  9. 鸿蒙将用于工业;三星新芯片支持 5G 和 AI;Material UI 4.2.1 发布 | 极客头条
  10. 排序算法python实现_用Python,Java和C / C ++实现的选择排序算法
  11. rpc服务器进不了系统,Win7系统RPC服务器不可用怎么解决?
  12. 【路径规划】基于matlab人工势场法机器人自动避障【含Matlab源码 620期】
  13. 《高等代数学》(姚慕生),习题1.3:n阶行列式
  14. B站视频下载与字幕下载转换
  15. 采用Minitab进行logistic回归分析
  16. Android简单模仿微信扫一扫二维码
  17. python 英语词频统计_Python实现统计英文文章词频的方法分析
  18. 构建一个属于自己的centos7-php80-swoole的Docker镜像
  19. 女孩都喜欢什么类型的男生?
  20. css 文本排版方向,古文式排版等

热门文章

  1. kicad绿油开窗_KICAD新手答疑解惑专帖
  2. shell-条件判断里的“并且“和“或者“
  3. 使用docker安装gitlab以及gitlab简单使用
  4. Word中利用字体把文字转换为特殊图案(转)
  5. Windows10下修改IP和MAC方法
  6. 多个DHL快递物流怎么同时查询最方便
  7. 湖北省高职计算机本科学校有哪些,盘点最新湖北十大高职高专院校排名,湖北最好的高职院校有哪些?...
  8. 如何用mysql对淘宝用户行为进行分析
  9. Android扫描蓝牙问题,你是不是位置权限和GPS都打开了还是扫不出东西
  10. Deno 1.0,来了解一下