8421BCD码

人性化的存在

计算机内毫无例外地都使用二进制数进行运算,但通常采用8进制和十六进制的形式读写。对于计算机技术专业人员,要理解这些数的含义是没问题,但对非专业人员却不那么容易的。由于日常生活中,人们最熟悉的数制是十进制,因此专门规定了一种二进制的十进制码称为BCD码(Binarycoded Decimal),它是一种以二进制表示的十进制数码。
8421BCD为最常用的一种BCD码
表示方法:
以一个4位二进制数表示十进制中一个一位数,而后用四个四个的组合表示多位十进制数。

“8421”即:四位二进制数的权重各为8421。

【百度百科】
二进制编码的十进制数,简称BCD码(Binarycoded Decimal)。这种方法是用4位二进制码的组合代表十进制数的0,1,2,3,4,5,6 ,7,8,9 十个数符。4位二进制数码有16种组合,原则上可任选其中的10种作为代码,分别代表十进制中的0,1,2,3,4,5,6,7,8,9 这十个数符。最常用的BCD码称为8421BCD码,8.4.2.1 分别是4位二进数的位取值。 下图为十进制数和8421BCD编码的对应关系表:

进制转换

不同进制->十进制:

整数&小数部分:

将各位数字乘上其所在位的权重,按权展开相加

十进制是权是10;二进制是权是2;十六进制是权是16;八进制是权是8;
例:
110011(二进制数)=1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=32+16+2+1=51
1507(八进制数)=1*8^3 + 5*8^2 + 0*8^1 + 7*8^0 = 839
2AF5(十六进制数)=2*16^3 + A*16^2+ F*16^1 + 5*16^0 = 10997

十进制->不同进制:

整数部分:除权(倒序)取余

以二进制为例:
十进制数13转化成二进制数
13/2=6 余1
6/2=3 余0
3/2=1 余1
1/2=0 余1
结果:1101

小数部分:乘权取整

这一操作可以无限进行下去,会得到一个无限循环小数。在实际应用中应要求精度。

以下搬自百度知道:

0.25 二进制得0.01
0.25*2=0.5 取0 0.5*2=1取1 所以是0.01
这是为什么呢,看分数比较容易看出原因
十进制0.25 从十进制方式看,也就是 分数2/10 + 分数5/100
先看十进制

乘10(得2.5)的整数位得2 ,也就是十进制的小数第一位(这里你看到的2,其实是十分之二)

除去整数位,再乘10(得5), 就是小数位第二位(这里你看到的5其实是一百分之五)

十进制0.25 从二进制方式看,也就是 分数0/2 + 分数1/4

再看

乘2(得0.5)的整数位得0 , 也就是二进制的小数第一位(这里你看到的0,其实是二分之零)

除去整数位,再乘2(得1), 就是小数位第二位(这里你看到的1其实是四分之一)

再看

0.25,等于 0/2 + 1/4,即得二进制0.01。

0.75,等于 1/2 + 1/4,即得二进制0.11。

这种方法其实正如十进制7,等于4+2+1,即得二进制111一样。
其实乘二取整,意义就在于,每次乘2,在整数位看到的都是 2的n次方分之一的分子的值,即二进制小数点后第n位的值。
(引:https://zhidao.baidu.com/question/289714830.html)

二进制&二进制的家人们

二进制数->八进制数:分组

从小数点开始,整数部分向左、小数部分向右,每3位为一组不,足3位的要用“0”补足3位。
用一位八进制数的数字表示就得到一个八进制数。

例:
将二进制的10110.0011 转换成八进制:
分组:
010 110 . 001 100
26 . 14
即:(10110.011)2 = (26.14)8

八进制数->二进制数:直接

把每一个八进制数转换成3位的二进制数,就得到一个二进制数。

例:将八进制的37.416转换成二进制数:
3 7 . 4 1 6
011 111 .100 001 110
即:
(37.416)8 =(11111.10000111)2

二进制->十六进制 :分组

二进制数转换为十六进制数的方法也类似,从右到左,四位一组,不够补0
例:
0101 1011 1011
结果为:5BB

十六进制数->二进制数:

把每一个十六进制数转换成4位*(体现了一致性)*的二进制数,就得到一个二进制数。
例:
将二进制数1100001.111 转换成十六进制:
0110 0001 . 1110
6 1 . E
即:
(1100001.111)2 =(61.E)16

附,还算能用的进制转换工具,百度即得:
http://tool.oschina.net/hexconvert

171221—8421BCD码、进制转换相关推荐

  1. Java的不同进制输出,[DanoR][Java小码][进制转换::将double转换为不同进制后用String输出]...

    功能简述 进制转换 输入: 一个数(double),目标进制(int)和小数的保留位数(int) 输出: 相应进制的表示方式(String) 参数说明 double number; //将要被转换的数 ...

  2. Java字节码进制转换

    在理解二进制和十进制.十六进制时发现的,作为后续参考保存! public class codeCon {/*** 字符串转换成十六进制值* @param bin String 我们看到的要转换成十六进 ...

  3. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)

    我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...

  4. python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)

    文章目录 斐波那契数列 阿姆斯特朗数 十进制转二进制bin.八进制oct.十六进制hex 补充进制转换源码 python中::和:的区别 说明:本篇博文的知识点大部分来自 Python3 实例 斐波那 ...

  5. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

  6. 进制转换 和 正数负数——原码,反码,补码

    进制转换 定义:进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制.八进制.十进制与十六进制,它们之间**区别在于数运算时是逢几进一位.比如二进制是逢2进一位,十进制也就 ...

  7. 进制转换 原码、反码、补码

    进制转换: 为什么要使用二进制.八进制.十六进制: 因为现在的CPU只能识别高低两种电流,只能对二进制数据进行计算 二进制数据虽然能够直接被CPU识别计算,但是不方便书写.记录,把二进制转换成八进制是 ...

  8. 进制转换及如何求校验码(海明校验码及循环冗余校验CRC码)

    文章目录 前言 一.进制转换 1.1 二进制转换为八进制数和十六进制数 1.2 任意进制数转换为十进制数 1.3 十进制转换为任意进制 二.校验码求取 2.1海明校验码 2.2循环冗余校验CRC码 总 ...

  9. 数据的表示和运算,进制转换,BCD码,奇偶校验码,海明校验码,循环冗余码

    进制转换,逢r进一 基数:每个数码位所用到的不同符号的个数,r进制的基数为r 二进制 0 1 B 八进制 0~7 O 十进制 0~ 9 D 十六进制 0~9 ,A ~F( 10 ~15) H或0x 二 ...

  10. 软考笔记——1.1、计算机硬件组成、数据的进制转换、校验码

    一.计算机硬件组成 计算机的硬件基本系统由五部分组成:运算器.控制器.存储器.输入设备(如鼠标键盘).输出设备(如显示器) 存储器分为内部存储器(即内存.容量小,速度快,临时存放数据)和外部存储器(即 ...

最新文章

  1. 【SQL】sql语句LEFT JOIN(拼接表)详解
  2. 使用core data
  3. namespace-C#命名空间
  4. Kylin 2.0升级总结
  5. 关于oracle的物理dg,oracle物理DG管理-redo数据传输,应用与三种模式
  6. dibbler-server安装配置
  7. 网络QoS原理与实现
  8. linux设置文件最大权限,linux chmod 数字设置权限(最大权限)
  9. SlickEdit 使用技巧大收集
  10. android developer tiny share-20170603
  11. 科目一知识点分类记忆
  12. python植物大战僵尸辅助_【Python】实现植物大战僵尸修改(二)
  13. 2005年计算机图书出版路在何方——出版崩溃了吗?
  14. 7.sqli-labs-Less7
  15. 在一个线程中 sleep(1000) 方法,将使得该线程在多少时间后获得对 CPU 的控制(假设睡眠过程中不会有其他时间唤醒该线程)?
  16. 资源依赖项注入失败: org.springframework.beans.factory.BeanCreationException: Error creating bean with name
  17. 力扣-无重复字符的最长子串
  18. Android学习计划
  19. Delphi SM2/SM4国密算法
  20. 一篇文章构建你的 NodeJS 知识体系

热门文章

  1. GitLab使用中的403错误
  2. 获取富文本中的图片链接
  3. 女友让我走上家具电商年入亿万之路
  4. 快速翻译整篇pdf外文文献
  5. 高中数学基础-2.2.1 对数及对数的运算(下)
  6. 怎样实现iMessage群发
  7. 算法与数据结构课后习题第七章
  8. SwiftUI SF Symbols 好处及其使用指南
  9. Android使用marked.js渲染markdown文档
  10. Maven的jar包无法导入/彻底解决unable to find valid certification path to requested target