目录

推导8421码表

十进制快速转换为二进制

二进制快速转换为十进制

二进制转换为八进制

八进制转二进制

二进制转换为十六进制

十六进制转二进制

其他进制互相转换


bcd中的8421可以方便地进行进制转换。

不仅可以实现二进制和其他进制的互转,还可以在其他进制之间进行互转(先转成二进制再进行互转)。

例如,八进制转十六进制是八进制-二进制-十六进制。

推导8421码表

推8421码表非常简单。

其实就看某个数是如何通过8421构建的。

其中,二进制包含0、1,八进制包含0-7、十进制包含0-9,十六进制包含0-F

对于二进制0和1,其8421码只有两个,分别为0000和0001.

那么,该如何推导十进制的8421码呢?

以3为例,我们可以知道3=2+1,此时8421表达式为XX21,即0011.

对于7呢,我们可以知道7=4+2+1,此时8421表达式为X421,即0111

对于9呢,我们可以知道9=8+1,此时表达式为8XX1,即1001.

如何推导十六进制?原理很简单。其实就是将A-F用大于9的数进行表示。

例如15=F,15=8+4+2+1,则F=1111.

13=8+4+1=1101=B

对于八进制,其实它等价于十进制0-7的码表。

十进制快速转换为二进制

对于更高的十进制数,例如,97

我们需要将8421扩展到2的更高次方。

令97<2^max,Max为正整数

我们可以得到2^max的最大值为128.

新的8421码为128,64,32,16,8,4,2,1(共8个数字,8是4的倍数,便于我们进行计算)

其中128位为0。

64+32=96,还差1.

即97=64+32+1=01100001,我们可以去除高位0.

提示:对于小数部分,我们仍然使用传统的乘二法,它的计算量很小,我们不需要寻求新的解法。

你可以参考:十进制小数转化为二进制小数 | 菜鸟教程 (runoob.com)

二进制快速转换为十进制

例如,对于46,我们按照上述算法将其算成二进制,46=32+8+4+2=00101110

那么101110如何转化为10进制呢。

首先101110为6位,我们需要补齐位数到4的倍数,这里需要补到8位,也就是补成00101110.

很显然,我们按照上面的解法,需要扩展次方,但我们不知道00101110代表多大,不是吗?

你当然可以按照传统的解法进行解,

如果你希望使用8421,其实也是一样的,我们需要找到第一个1所在的位置,也就是第三位,即2^5.

2^5=32

因此,我们继续列出一个扩展的8421:

32 16 8 4 2 1

32位为1,16位为0,8、4、2都为1.

最后的结果就是32+0+8+4+2=46.它与传统的解法其实是一样 。

二进制转换为八进制

假设存在1000101010,求它的八进制。

注意,八进制转二进制转换的结果数字数量为3的倍数,而不是4的倍数,这是一个特例,二进制转八进制也符合这一条,例题它是10位数,你需要将其补齐到12位。如果你遇到了13位,则应当补齐到15位而非16位。

即001 000 101 010。

对码表可得1052Q.

八进制转二进制

以1052Q为例。

当涉及八进制时,我们需要将对应码表的第一位0省略,即通过观察0-7的十进制码表数据与八进制相同,但八进制0-7的首位码均为0,所以我们需要省略它,仅算三位。

这也就是说,我们在使用421码。

其中,2=010,5=101,0=000,1=001

则1052Q=001 000 101 010B

二进制转换为十六进制

假设存在一串二进制0100101111010011,求其十六进制。

将其按四个一组划分,不足补齐。得:

0100 1011 1101 0011

照抄码表得4,11,13,3

即4,B,D,3,得4BD3H

十六进制转二进制

假设存在一个十六进制4BD3,求十六进制。

4=0100

B=11=1011

D=13=1101

3=3=0011

结果为0100 1011 1101 0011.

其他进制互相转换

先转成二进制再进行互转

易错点:

八进制没有按照3位划分。

10进制数没有按照10进制的计算方法进行扩展8421计算。

最快的进制转换法之一,8421相关推荐

  1. 8421码(快速的进制转换法)

    8421码

  2. 快速进制转换法:8421码

    1 什么是8421码 8421码十进制和二进制的快速转换 8421码是中国大陆的叫法,它是BCD码中最常用的一种,这种编码方式中每一位二进制代码的1都是代表一个固定的数值然后把每一位1代表的数的十进制 ...

  3. day017:Java进制转换、原码反码补码、位运算、位移运算符

    一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...

  4. Java IDEA Debug进制二维数组

    1.Debug模式 1.1 什么是Debug模式 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序. 1.2 Debug介绍与操作流程 如何加断点 选择 ...

  5. -变量,进制,数据类型,标识符

    ###02.01_Java语言基础(常量的概述和使用)(掌握) * A:什么是常量 * 在程序执行的过程中其值不可以发生改变 * B:Java中常量的分类 * 字面值常量 * 自定义常量(面向对象部分 ...

  6. 计算机中的进制(二进制,八进制,十进制,十六进制)

    编写背景 最近做了个项目,对接蓝牙设备通信,对接的时候第三方的设备需要协议加密,就用到了位运算(&,>>,<<),只是这个加密算法不是我写的,是公司的架构师写的,他是写 ...

  7. java 基础进制概述和二,八,十六进制图解

    文章目录 1. 进制数概念 2. Java语言基础(不同进制数据的表现形式)(掌握) 2.2_Java语言基础(任意进制到十进制的转换图解)(了解) 2.3_Java语言基础(十进制到任意进制的转换图 ...

  8. java15转2进制_Java-Day02,进制转换

    一.Java语言基础(常量的概述和使用)(掌握) * 1.什么是常量 * 在程序执行的过程中其值不可以发生改变 * 2.Java中常量的分类 * 字面值常量 * 自定义常量(面向对象部分讲) * 3. ...

  9. Java学习笔记 --- 进制转换

    一.进制 1.1.二进制:0,1表示,满2进1,以0b或者0B开头. 1.2.八进制:0-7,满8进1,以数字0开头. 1.3.十进制:0-9,满10进1 1.4.十六进制:0-9及A(10)-F(1 ...

  10. 数据类型,数据类型转换以及进制转换

    一,字面值常量 *字符串常量 用双引号括起来的内容 *整数常量 所有整数 *小数常量 所有小数 *字符常量 用单引号扩起来的内容,里面只能放单个数字,单个字母或单个符号 (''中放的必须是单个字符,1 ...

最新文章

  1. calendar获取月份少一个月_6月份,花园小学、铁岭小学等哈尔滨南岗校区部分二手房量价齐涨...
  2. 他2年拿下博士学位,发表11篇顶会论文!浙大校友李旻辰斩获SIGGRAPH最佳博士论文奖...
  3. 前端错误信息收集(errorEruda)解析
  4. 在 tensorflow 和numpy 中矩阵的加法
  5. 大神开发的模板框架 包括常见的功能
  6. 2013年快要过去了,为新来的2104计划
  7. linux 手动控制cpu转速,Linux 手动计算CPU使用率
  8. 腾讯一面总结-web前端-2018.4.11
  9. JavaWeb的环境配置
  10. 帆软报表扩展列计算同比环比
  11. php发出声音,电容也会发出声音!电容啸叫是怎么产生的?如何解决?
  12. 云安全,到底是怎么一回事?
  13. 专业动漫库好看的3d动漫推荐(3D动漫排行榜2022)
  14. 基于OpenStack的云计算平台搭建
  15. 在Linux中查找和删除重复文件的4种方法
  16. sql 开发html,uap开发sql
  17. 千叶县政府将在2020年东京奥运会和残奥会期间推出虚拟旅游体验
  18. classtwo_单表查询
  19. 世界银行1960-2019年制造业增加值
  20. Python之路Day2

热门文章

  1. 北大2011年计算机系录取浙江毛,湖州这11位同学被清华北大录取!
  2. oracle19c windows 桌面版 安装
  3. Next.js基本使用
  4. php邮件发送可以发送图片吗,phpmailer发送图片
  5. 美团后台开发暑期实习面经(一面+二面)已offer
  6. 在php中phr是什么意思,phr. 相当多的_____
  7. 显卡的优化以提高计算机性能作用,事实:[图形卡]黄卡驱动的“优化以提高计算性能”问题,只需进行简单测试即可...
  8. 翼支付个人账单查询接口
  9. android系统运行缓慢,安卓手机运行速度慢怎么办 手机运行速度慢如何解决 - WiFi共享大师...
  10. 每周一喂丨图说WiFi安全