文章目录

  • 进制之间的转化
    • 十进制转二进制
    • 二进制转十进制
    • 十进制转十六进制
    • 十六进制转十进制
    • 二进制转十六进制
    • 十六进制转二进制
  • 与或非逻辑运算
    • 二进制之间的与或非
    • 十六进制之间的与或非
  • 简单的单片机案例
    • 原理图
    • 一个LED闪烁案例
    • 从高位起点亮第1、3、5、7个LED

2022/01/15

进制之间的转化

十进制转二进制

  • 方法一:除二取余 对所求的数不断进行除以二再取余数的运算,直到出现商小于二为止,最后将余数倒序排放。
    示例:

    我们将10用短除法不断进行取余 最后将所得的余数从下往上排放可以得到 1010 即10的二进制数为 0b1010。

  • 方法二:按权重计算 即按 …… 23 22 21 20 凑出相应十进制数

    示例:同样拿10来进行运算

    在8421中我们可以得到 10=1x8+0x4+1x2+0x1 所以 10的二进制数为 0b1010。

二进制转十进制

  • 方法一:乘二加余 通过对已知二进制数不断进行乘二加余运算,直到已知二进制数中所有数字全部用完

    示例:

    0b1011 1x2+0=2 、 2x2+1=5 、 5x2+1=11 即 0b1011 为十进制 11。

  • 方法二:按权重计算 即将二进制数中1对应的权重相加计算结果

    示例:

    8+0+2+1=11 即 0b1011 转为十进制为11

十进制转十六进制

  • 方法:除十六取余 对所求的数不断进行除以十六再取余数的运算,直到出现商小于十六为止,最后将余数倒序排放
    (参考十进制转二进制的方法一)
  • 在十六进制中 A-F 代表 10-15

十六进制转十进制

  • 方法:乘十六加余 通过对已知十六进制数不断进行乘十六加余运算,直到已知十六进制数中所有数字全部用完
    (参考二进制转十进制的方法一)

二进制转十六进制

  • 方法:将二进制分为四位一组(从右边分组,左边少数时补0),将每组转化成十进制,再将十进制转化为十六进制。
    示例:将 0b1101010 转化为十六进制
    0b1101010 分为两组时少一位,故将左端补0得到 0b01101010 将其分成两组 0110 1010 第一组为十进制6 第二组为十进制10 即第一组为十六进制6 第二组为十六进制 A 所以结果为 0x6A

十六进制转二进制

  • 方法:将每个十六进制数摘出,转化为十进制,再将十进制转化成二进制。
    示例:将 0x4f 转化成二进制
    0x4f 单独摘出为 4 和 f 转化成十进制为 4 和 15 ,将其转化成二进制为 0100 1111 所以结果为 0b01001111

为加速计算,可直接背诵下列表格:

十六进制 0x 二进制 0b 十六进制 0x 二进制 0b
0 0000 8 1000
1 0001 9 1001
2 0010 a 1010
3 0011 b 1011
4 0100 c 1100
5 0101 d 1101
6 0110 e 1110
7 0111 f 1111

与或非逻辑运算

二进制之间的与或非

与运算:符号 & 0与任何数为0 1与1为1 类似于乘法

数字1 数字2 结果
0 0 0
0 1 0
1 0 0
1 1 1

或运算:符号 | 1或任何数为1 0或0为0 类似于加法

数字1 数字2 结果
0 0 0
0 1 1
1 0 1
1 1 1

非运算:符号 ~ 对原来数取反 1成为0 0成为1

原数 结果
0 1
1 0

十六进制之间的与或非

  • 方法:转换为二进制按位运算
    示例: 0xa5 & 0x86
    将两者分别转换成二进制可以得到 10100101 和 10000110 再将两者挨位运算可以得到 10000100

简单的单片机案例

原理图

  • 导线终端字母相同代表这两根导线是相通的。
  • 如想快速知道某一导线另一端与何处相连可用 Ctrl+f 进行搜索。
  • 单片机有 P0 P1 P2 P3 四组io口,每组里面又有 0-7 八个io口。

一个LED闪烁案例

#include <reg52.h> //reg52头文件中包含寄存器地址sbit led=P2^0;   //将P2组的第一个io口定义为ledvoid main()
{led=1;    //使led输出高电平int a;while(1)   //等效于  while(ture)  程序会在此一直循环{led=~led;    //对led当前电平进行取反 使P2^0口输出高低交替的电平a=60000;while(a--);}
}

从高位起点亮第1、3、5、7个LED

#include <reg52.h>void main()
{P2=0x55;  // 0101 0101 即点亮P2组的第 1 3 5 7 个led (由原理图可知 当输出为低电平时led发光)while(1);
}

进制转化、逻辑运算、简单案例相关推荐

  1. 对于十进制转化为任意进制数的简单算法分析

    对于十进制转化为任意进制数的简单算法分析 基本思路: 对于十进制转任意进制,通常都是通过取余逆序排列法获得结果,举个简单例子10进制数1024 转2进制: 1024/2=512 余->0 512 ...

  2. 用递归实现简单的进制转化器(模块化设计):学习递归题型之一

    引言: 在阅读C Primer Plus时,我发现一个非常有意思的将十进制转化二进制的方法,我通过逻辑推理,将十进制转化为八进制以及十六进制的方法类比了出来:在此处呢,我将用递归实现对十进制转化为三种 ...

  3. python字符串格式化、运算符优先级、进制转化、编码回顾

    python基础 1.字符串格式化 1.1 % 1.1.1 %s 1.1.2 N个占位符 1.1.3 %d 1.1.4 百分比 %% 1.2 format 1.3 f 2.运算符优先级 2.0 逻辑运 ...

  4. 【PAT - 甲级1010】Radix (25分)(二分,进制转化)

    题干: Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? Th ...

  5. 进制转化进10进制数

    Option Explicit Private Sub Form_Click() Dim St As Integer, Dem As Long St=InputBox("输入一个十六进制数& ...

  6. 将最大位1000位的16进制转化位8进制(蓝桥杯)

    用c++实现将最大位1000位的16进制转化成8进制(## 蓝桥杯) 题目 先将16进制转化成二进制在将其转化成八进制 代码如下(示例): ```cpp #include <bits/stdc+ ...

  7. 计算机基础 进制转化,计算机基础知识_进制转化(示例代码)

    进制转化 一.任何一个进制转化为10进制的方式 156的十进制可以看做1*10^2 + 5*10^1  +   6*10^0 首先我们看一下156 ,平方,次方等等都是根据后面有多少位决定的,如果用计 ...

  8. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU

    笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...

  9. 编码/解码和进制转化工具hURL

    编码/解码和进制转化工具hURL 在安全应用中,各种编码方式被广泛应用,如URL编码.HTML编码.BASE64等.而在数据分析时候,各种进制的转化也尤为频繁.为了方便解决这类问题,Kali Linu ...

  10. ASP常用进制转化类(2,8,10,16,32,64)

    <% ' 名称:HDOBTools ' 描述:进制转化类 ' 作用:用于各种进转的转化 Class HDOBToolsPrivate hdobHackPrivate Sub Class_Init ...

最新文章

  1. 洛谷 P1142 轰炸
  2. 谷歌排名第一的编程语言,死磕它这两点,小白也能学的会!不信你看!
  3. PC 时代旧神隐没,互联网的新二十年开始了
  4. eBay是如何进行大数据集元数据发现的
  5. html标签在html页面正常显示而不被解析
  6. centos中python报错 SyntaxError: Non-ASCII character ‘\xe7‘ in file car-training.py on line 7, but no en
  7. imx6q 开发板_mplayer移植-迅为IMX6Q开发板
  8. node --- 连接mysql(docker环境) Sequelize库
  9. 大数据认知计算在内容安全管控中的应用
  10. 作者:孙卫强,博士,上海交通大学教授、博士生导师。
  11. VBA_输出SQL查询数据
  12. python大数据处理mapreduce_使用python构建基于hadoop的mapreduce日志分析平台
  13. 来瓶82年拉菲压压惊
  14. Trying to create too many scroll contexts. Must be less than or equal to: [20000]
  15. 小米红米有锁机如何刷机升级MIUI12.5系统-完美解锁机刷机教程
  16. 在遇到移动硬盘无法访问的情况下,如何无需格式化地修复硬盘?
  17. c++11 std::decay源码剖析
  18. SPDA-CNN:Unifying Semantic Part Detection and Abstraction for Fine-grained Recognition
  19. Unity精华☀️二、到底是什么原因导致“万向锁”?旋转翻车的终极解析!
  20. .net 操作达梦数据库

热门文章

  1. cookie访问历史记录
  2. K8S更换控制面节点
  3. String类 常用方法案例
  4. asp.net2.0自动根据用户自定义字数生成带分页的静态(HTML)页
  5. 同花顺中如何自定义函数
  6. python协程是什么_在python中线程和协程的区别是什么
  7. 【2】CentOS-8.4.2105-x86_64的下载说明与安装
  8. 无论 iPhone 还是 Android 手机,散热已成为「最大瓶颈」
  9. C++学习(四):Facebook 的 C++ 11 组件库 Folly Futures
  10. 个人博客的运营模式能否学习TMALL天猫质量为上?