BCD码的表示方法(没有单独的表示方法,只是用二进制表示,和十六进制更不同(有时候为方便暂且用十六进制形势,绝对不能理解为十六进制中特殊的一些数(无10以上的字母表示)))
BCD码的表示方法BCD码的表示方法(没有单独的表示方法,只是用二进制表示,和十六进制更不同(有时候为方便暂且用十六进制形势,绝对不能理解为十六进制中特殊的一些数(无10以上的字母表示)))BCD是什么? 用二进制数来表示十进制数的表示方法。 BCD有两种形式,pack BCD, unpack BCD1.pack BCD,压缩的BCD码它是一种用四位二进制数表示十进制数. 首先是用四位二制数表示个数,然后用四位二进制数表示十位, 然后百位...。 比如:251需要三个四位二进制数表示。 1表示为0001;5表示为0101;2表示为0010. 最后251的BCD数据表示为0010 0101 0001. 2.unpack BCD.非压缩BCD 非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。 ASCII和BCD码对照表:
|
来源:http://www.cublog.cn/opera/showart.php?blogid=15478&id=83640
BCD码:
BCD(Binary Coded Decimal)是用二进制编码表示的十进制数(见表3.3),十进制数采用0~9十个数字,是人们最常用的。在计算机中,同一个数可以用两种BCD格式来表示:①压缩的BCD码 ②非压缩的BCD码
压缩的BCD码:
压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数用一串BCD码来表示。例如,十进制数59表示成压缩的BCD码为0101 1001,十进制数1946表示成压缩的BCD码为0001 1001 0100 0110。
非压缩的BCD码:
非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。例如,十进制数78表示成压缩的BCD码为0000 0111 0000 1000。
从键盘输入数据时,计算机接收的是ASCII码,要将ASCII码表示的数转换成BCD码是很简单的,只要把ASCII码的高4位清零即可。
ASCII和BCD码
十进制数字 ASCII码 压缩BCD码 非压缩BCD码
0 0011 0000 0000 0000 0000
1 0011 0001 0001 0000 0001
2 0011 0010 0010 0000 0010
3 0011 0011 0011 0000 0011
4 0011 0100 0100 0000 0100
5 0011 0101 0101 0000 0101
6 0011 0110 0110 0000 0110
7 0011 0111 0111 0000 0111
8 0011 1000 1000 0000 1000
9 0011 1001 1001 0000 1001
void BcdToAscii (char *ascii_buf, const BYTE *bcd_buf, int len)
{
int i;
char ch;
for (i=0; i {
if (i & 1) ch = *(bcd_buf++) & 0x0f;
else ch = *bcd_buf >> 4;
ascii_buf[i] = ch + ((ch > 9)? 'A'-10 : '0');
}
}
来源:http://xxcom.blogchina.com/
BCD码的表示方法(没有单独的表示方法,只是用二进制表示,和十六进制更不同(有时候为方便暂且用十六进制形势,绝对不能理解为十六进制中特殊的一些数(无10以上的字母表示)))相关推荐
- 将BCD码转化成10进制数
1:目的 将BCD码转化成10进制数,并按照低位到高位的形式组合在一起.例如0x23和0x45 转化成 十进制4523 2:实现 /********************************** ...
- 16进制数转化为bcd码的方法
单片机设计中经常进行数制之间的转换,int类型数据可以存放65535以下的数. 转化为bcd码用以下方法: unsigned int hexresult; //待转化的16进制数: unsigned ...
- 内存中有两个4字节以压缩的bcd_【汇编程序】循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放...
;循环程序设计方法 求A和B两个4字节BCD数之和 他们在内存中以压缩BCD码形式存放 ;低字节在前 高字节在后 要求结果以同样形式存放以SUM的单元中 data segment a db 44h,3 ...
- 数制和码制(数制的转换的方法,BCD码<8421,2421,5421,余三码>,格雷码,原码,反码,补码,定点数和浮点数)
目录 1.数制的转换 1)二,八,十六进制进制转十进制 加权系数求和法 2)十进制转二,八,十六进制 除基取余法(短除法) 减权定位法 3)二,八,十六进制的相互转换 2.BCD码 3.格雷码 4.原 ...
- c++ 转bcd码_BCD码转10进制字符串(C#、C++)
C# /// /// 将bcd字节数组转为10进制字符串 /// /// bcd码字节数组 /// 返回转换后的10进制字符串 public string BCDCodeToDecimalString ...
- c语言字节BCD码转换成10进制,如何将BCD码转换成10进制码
今天有人在问我BCD码如何转换成10进制码的问题,其实很简单 BCD 的表示法是 用4个二进制位来表示 一个十进制位,也就是一个字节能够表示2个十进制数位,这是一种压缩的十进制表示方式,应用很广,最常 ...
- 十进制转BCD码的方法
今天发现一个十进制转BCD码的好方法,赶紧记录一下以备后用 举例: 要把一个3位的十进制数635转成BCD码(H)表示: 635(D) / 100(D) = 6(D) 6 * 16 2 = 1536( ...
- 【微机汇编语言学习笔记(四)】十进制数的ASCII转换为BCD码
目的:从键盘输入五位十进制数的ASCII码,存放与3500H起始的内存单元中,将其转换为BCD码,再分别存入350AH起始的地址单元内.若输入不是十进制的ASCII,则对应存放结果的单元内容为&quo ...
- 汇编语言(二)之将十进制数的ASCⅡ码转换为BCD码
题目要求 从键盘输入五位十进制数的ASCⅡ码,存放于3500h其实的内存单元中,将其转换为BCD码后,再按位分别存入350Ah起始的内存单元内.若输入的不是十进制ASCⅡ码,则对应存放结果的单元内容为 ...
最新文章
- 美多商城之商品(商品数据库表设计)
- web设计经验一 提升移动设备响应式设计的8个建议
- dig挖出DNS的秘密
- null在java存在的意义何在,Java并发编程——volatile关键字
- apollo在Linux下读不到参数,Apollo的基本使用及常见问题
- mysql group by 集合_MySQL高级查询之与Group By集合使用介绍
- iOS底层探索之KVO(四)—自定义KVO
- 【转】linux kernel 网络协议栈之GRO(Generic receive offload)
- python django文档_python Django中文文档下载
- 精密划片机维护及保养
- 树为什么能长这么高?
- graphpad画生存曲线怎么样去掉删失点_Graphpad 作图教程 | 这份超详细的生存曲线绘制指南,科研新手一看就会!...
- 【雷丰阳-谷粒商城 】课程概述
- luogu 题解 P1217 【[USACO1.5]回文质数 Prime Palindromes】
- 靠谱的HEVC方案-软编解码器
- App前端,Web前端,后端,微信小程序到底该学啥?
- Android 自定义View流程
- 应变片悬臂梁 电桥电路计算
- Redis的各种用途以及使用场景
- win10可以上网但是网路连接显示小地球(无法连接到Internet)