码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 转码(BIN→ASIIC/BIN→BCD)


    转码(BIN→ASCII/BIN→BCD)

    • 一、ASCII码
      • (一)转换工具/规则
      • (二)为什么要用ASCII码
      • (三)其他
    • 二、BCD码
      • (一)BCD码作用
      • (二)8421-BCD码
      • (三)转换规则
      • (四)转换工具

    一、ASCII码

    (一)转换工具/规则

    查表可知:数字与ASCII相差0x30,
    数字转ASCII:数字(十进制)+0x30(十进制48)=ASCII
    转码工具:
    汉字ASCII码查询工具

    (二)为什么要用ASCII码

    计算机中,数值和字符是两种不同类型的数据。
    ASCII码是字符编码,是计算机用于表示和显示字符的,他的真值是对应字符的映射,从根本上是八位二进制编码。
    计算机的显示一个数并不是直接从它的二进制数值来的,而是要将这个数值转换为对应的ASCII字符再显示。
    电脑接收/发送数据时其实也是接收/发送的ASCII格式数据,它可以自动把ASCII码映射为对应字符显示到屏幕上。而我们用开发板发送数据是二进制格式的需要转换成ASCII码格式的

    在计算机里面信息都是用二进制表示的,这种表示方法被用户理解起来是较为困难的,正是因为如此,所以为了优化和改善用户的使用体验,计算机都会配置有输入以及输出设备,这些设备的应用目的,在于让信息以可以读懂的形式展示出来,从而方便人们阅读以及理解计算机信息。为了保障用户与设备之间,以及设备和计算机之间能够准确和规范地进行信息交流,所以需要制定统一和规范的交换代码,这就是ASCII码表产生的原因,也就是说它的作用表现在,让用户更加容易和顺畅的理解计算机信息。

    (三)其他

    请问计算机中二进制0和1既然能表示数字,为什么还用ASCII码表示,不冲突吗?
    C语言中,字符型变量是char, 整数型变量是int,这里我们声明两个变量

    int a=3;

    char b=51;

    然后将这两个变量的值打印到屏幕上

    printf(“%d, %c”,a,b);

    我们会得到

    3, 3

    输出到屏幕上之后,这两个3都是字符而不是数值


    二、BCD码

    (一)BCD码作用

    由于2进制不方便转换为10进制,于是人们提出了8421码来表示10进制的数。Verilog编程时使用BCD码可以方便用串口显示用多位十进制原来的二进制数,且顺序不会发送改变 。

    • BCD码(Binary-CodedDecimal‎),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。
    • 相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免去使计算机作浮点运算时所耗费的时间。
    • BCD码也称二进码十进数,BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码。

    (二)8421-BCD码

    在这里插入图片描述

    (三)转换规则

    参考【二进制码转换为BCD码,Verilog代码实现】让你看一遍就明白

    Bit→BCD码的转换流程
    以二进制8'b1010 0010为例子,即“1010 0010”显示162,来演示二进制—'8421’BCD码的转换:
    在这里插入图片描述
    在这里插入图片描述

    转换说明:

    • 1、如果某一权位(百位,十位,个位)≥ 5,那么此权位加3,否则将二进制数左移1位到BCD移位寄存器中;

    • 2、当二进制数据位都移动完毕,计算结束;

    • 3、返回步骤1循环判断执行。

    (四)转换工具

    二进制到BCD转换器

  • 相关阅读:
    db2数据库配置
    第二章-Mybatis源码解析-以xml方式走流程
    opencv c++ 轮廓匹配
    软件设计模式白话文系列(七)适配器模式
    LabVIEW学习笔记十三:窗格详解(调整窗格大小时缩放特定对象)
    Docker的基础知识与应用技巧
    在你的ubuntu20.04上安装ros
    Web前端开发技术课程大作业,期末考试HTML+CSS+JavaScript电竞游戏介绍网站
    【PTA】递归练习_输出1到n的全排列
    pandas 筛选数据的 8 个骚操作
  • 原文地址:https://blog.csdn.net/weixin_56102526/article/details/126372522
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号