171221—8421BCD码、进制转换
来源:互联网 发布:case when mysql 编辑:程序博客网 时间:2024/06/05 16:45
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码、进制转换
- C#下16进制和BCD码转换代码
- 作业-8421BCD码的转换
- 算法:C++实现BCD进制转换
- BCD码转换 .net C# BCD 码转换
- BCD与ASC码转换
- 二进制与BCD码转换
- 13.01.24 转换 BCD码
- 十六进制转换为BCD码
- BCD码与十进制转换
- 二进制码转换为二—十进制(BCD)码
- 什么是BCD码?BCD码的用处。怎么把BCD码转换成二进制值?
- 压缩BCD码转换成ASCII码
- BCD码与十进制之间的转换
- 十六进制、BCD码和十进制的转换
- BCD 码与 unsigned char 转换
- 十六进制与BCD码的相互转换
- BCD码和十进制的相互转换
- 关于RDD的打印输出(来自官网)
- Django项目在linux系统中虚拟环境部署
- vue.js 计算属性及计算属性(computed)、methods、watched三者区别
- HBuilder软件如何显示点开头的文件 如.gitignore等
- PHP压力测试工具--WebBench
- 171221—8421BCD码、进制转换
- 向Maven中央库提交自开发Jar包
- struts2小结(1)
- TIMECAM
- 把windows IIS日志导入到mysql数据库
- OVLS系统需求 火推 06
- java对redis的基本操作
- NGUI输入文本Input
- 2017_SDNU_ACM/ICPC_Freshman's Easy Game