什么是BCD码?BCD码的用处。怎么把BCD码转换成二进制值?
含义:用4位二进制数来表示数值中的1位(十进制数中的0~9这10个数字),简称BCD码,即BCD代码
也可以这样理解:就是将十进制的数以8421的形式展开成二进制(14 以8421形式展现成二进制就是00010100 十进制表示就是20)
14的BCD码为20.
函数的作用就是把20变成14. 怎么把20变成14呢?从定义出发, 每一位用4位二进制表示.那就把BYTE的前4位*10,加上后四位即可。通过现象看本质。就这句话。
bcd码是四位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000
/******************************************************************************
* Function : bcd2val
* Description : Convert one BYTE packed BCD to binary value.
* Input : bcd; // one BYTE packed BCD.
* Return : binary value.
* Note : N/A
* Globals Changed : N/A
******************************************************************************
*/
DWORD bcd2val(BYTE bcd)
{
return ((bcd>>4)*10 + (bcd & 0x0f));
} /* bcd2val */
bcd2val(20)=
(1)、 00010100>>4=00000001
(2)、 1*10=10
(3)、 bcd&0x0f=00000100
(4)、10+4=14 十六进制表示为e
把word型的数据(BCD)也转换成二进制值。
DWORD bcd2bin(WORD bcdval)
{
return(bcd2val((BYTE)(bcdval/256))*100 + bcd2val((BYTE)(bcdval%256)));
}
除以256相当于右移动8位,即把前一个字节转成二进制值,+后一个字节的BCD码值转换成二进制值。
BCD转成 二进制值输出 这个函数写的好像有问题。
DWORD bcd2val(BYTE bcd)
{
return ((bcd>>4)*10 + (bcd & 0x0f));
}
如果用BCD码 20 赋值进去好像,没问题。算出来的值为 14
如果用241去计算的话。算出来值是 151也是完全正确的。 eg:
1、241的BCD码 的十进制值 为151 .
2、256的BCD码 十进制值是100 二进制为0X64
2011-06-01 wcg
什么是BCD码?BCD码的用处。怎么把BCD码转换成二进制值?相关推荐
- bcd转ascii码 流程图_BCD码转换成ASCII值
展开全部 BCD码转ASCII码 BCD码表示:对于用BCD码怎么表示十进制数32313133353236313431303231363533e4b893e5b19e3133343135663429上 ...
- 格雷码转换成二进制c语言程序,格雷码与二进制的转换程序
/* 格雷码与二进制的转换程序 * 本程序采用递推的方法进行推导,可以转换0~2147483647之间的数(1~31位) * 推导方式如下(以三位格雷码为例): * 序号 格雷码 格雷码实值 二进制码 ...
- bcd转ascii码 流程图_BCD码转换成二进制和ASCII码
首先得知道什么是BCD码,可以看下百度,基本定义已经讲清楚了,百度链接:BCD码--百度百科:这里要说的也是最常用的一种BCD码:8421码.本文规定若没有特殊说明时,各个数值只会是十进制数.二进制数 ...
- 转换8421码的程序c语言,16进制数转换成8421BCD编码函数
.INCLUDE hardware.inc .IRAM _Led_Out: .dw 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 _L ...
- C语言十进制转换成二进制源码
把开发过程比较重要的一些内容备份一次,下边资料是关于C语言十进制转换成二进制的内容,应该对各位朋友有一些用. #include int main() { int num; std::cout < ...
- html在线ocr文字识别源码,如何用OCR文字识别软件把图像转换成HTML
之前给大家介绍了使用PDF转换成HTML文档首选ABBYY Mac),其实ABBYY FineReader无论Mac版还是Windows版都可以实现这一点,除此之外还可以将图像文件转换成HTML文档, ...
- c语言实现补码(负数)转换成原码
1.基础知识 (1)负数在计算机中是以补码的形式存储的: (2)有符号数的最高位为1表示为负数,为0表示正数: (3)反码:等于原码除过符号位,其余位取反: (4)补码:等于反码加1. 2.以-62为 ...
- 原码的定义公式怎么理解_原码、反码、补码
一. 机器数和机器数的真值 在学习原码,反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数.机器数是带符号的,在计算机用机器数的最高位存 ...
- 51单片机二进制转bcd码c语言,16位二进制数转换成BCD码的的快速算法-51单片机...
在做而论道上篇博文中,回答了一个16位二进制数转换成BCD码的问题,给出了一个网上广泛流传的经典转换程序. . 说它经典,不仅是因为它已经流传已久,重要的是它的编程思路十分清晰,十分易于延伸推广.做而 ...
最新文章
- 《WeCity未来城市2.0白皮书》全文发布
- linux有符号和无符号,有符号数和无符号数
- 解决Outlook带有附件的邮件重复发送的问题
- python读取视频分辨率_Python实现以不同分辨率分类视频
- js倒计时天时分秒php,JS制作分秒倒计时器
- AbstractQueuedSynchronizer理解之三(Semaphore)
- ubuntu动态截图(GIF动画)
- 苹果Mac重复文件清理工具:​​​​Tidy Up
- Johnson 算法
- DNS与NS、NS记录
- 文本分类——怎么将二分类模型应用到多分类问题?
- SPI驱动之南瑞NRSEC3000加密芯片驱动开发总结
- 使用Intellij来实践测试驱动开发 TDD Kata
- 视频会议室装修部署指南
- Uva 1151 Buy or Build 二进制枚举+最小生成树
- 计算机底层:海明校验码。
- 在腾讯,我们如何做 Code Review
- IEEE 754浮点数标准详解
- 【改进模糊神经网络】基于粒子群-万有引力算法PSOGSA 改进的前馈神经网络研究(Matlab代码实现)
- [第六章 CTF之PWN章]n1ker
热门文章
- 知+是什么,知乎知+怎么开通?
- 那些前端的特效(装哈哈神器)
- java四个数打擂,荐 C/C++/Java/Go/Rust,Python喊你来打擂:3秒钟内统计出小于1亿的素数个数...
- 我的职业梦计算机软件,我的职业梦作文500字
- 渗透测试-2022红队必备工具列表总结​
- arXiv每日推荐-5.5:语音/音频每日论文速递
- 最新的Android版本是什么?
- ext winds点击超连接_东南大学崔铁军院士团队在信息超材料领域取得新进展
- 英国政府计划到2050年交通运输将脱碳
- web页面开发,一个前端妹子的面试笔记,知乎上已获万赞