请教BCD码转为十进制的问题
8421组合BCD码,想转为十进制
dim a as byte =&h18 (十位为1 ,个位为8)
程序写法:
十位 个位
dim b as integer = ((a And &HF0) /16 )*10 + a And &HF
msgbox((((a And &HF0) /16 )*10).Tostring ) 得出结果为 1
msgbox((( a And &HF).Tostring ) 得出结果为8
msgbox(b.tostring) 得出结果为2
当我把代码改成
十位 个位
dim b as integer = CByte(((a And &HF0) /16 )*10) +CByte( a And &HF)
msgbox((((a And &HF0) /16 )*10).Tostring ) 得出结果为 1
msgbox((( a And &HF).Tostring ) 得出结果为8
msgbox(b.tostring) 得出结果为18
只要我的个位小于等于5, 我用
dim b as integer = ((a And &HF0) /16 )*10 + a And &HF
可以得到正确的十进制值,大于16后就会有问题,
请个位大大帮忙分析一下为什么会这样?
dim a as byte =&h18 (十位为1 ,个位为8)
程序写法:
十位 个位
dim b as integer = ((a And &HF0) /16 )*10 + a And &HF
msgbox((((a And &HF0) /16 )*10).Tostring ) 得出结果为 1
msgbox((( a And &HF).Tostring ) 得出结果为8
msgbox(b.tostring) 得出结果为2
当我把代码改成
十位 个位
dim b as integer = CByte(((a And &HF0) /16 )*10) +CByte( a And &HF)
msgbox((((a And &HF0) /16 )*10).Tostring ) 得出结果为 1
msgbox((( a And &HF).Tostring ) 得出结果为8
msgbox(b.tostring) 得出结果为18
只要我的个位小于等于5, 我用
dim b as integer = ((a And &HF0) /16 )*10 + a And &HF
可以得到正确的十进制值,大于16后就会有问题,
请个位大大帮忙分析一下为什么会这样?
...全文
相关推荐
将两个多位十进制数相加,要求加数和被加数均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处
### 二、ASCII码与十进制数在本例中,每个十进制位都被编码为ASCII码存储。例如,“3”被编码为ASCII码“33H”,而“4”被编码为“34H”。
十进制转8421_BCD码
目录 一、BCD码简介 二、十进制转8421BCD码转换思路 三、程序编写 四、仿真验证 总结 一、BCD码简介 BCD码(Binary-Coded Decimal),用4位二进制数来表示1位十进制数中的0~9这10个数码,是一种二进制的数字编码形式,常应用于计算机内部十进制与二进制之间的转换。 BCD码可分为有权码和无权码两类。其中,常见的有权BCD码有8421码、2421码、5421码;无权BCD码有余3码、余3循环码、格雷码。8421码,顾名思义,自高...
3单片机实验报告.doc
BCD码是二进制编码的十进制数,它在金融和商业计算领域中具有广泛应用。
数字电路复习各章知识点与例题.pdf
在码制定义方面,二进制编码的十进制数BCD码是数字电路中常见的码制之一,它将十进制的每一位数单独转换成对应的四位二进制数。例如,十进制的数字3在BCD码中表示为0011。
数字电子技术基础教程.doc
**BCD码**: - 十进制数转BCD码:BCD码(Binary-Coded Decimal)是将每个十进制数用四位二进制表示,例如25的BCD码是0010 0101。5.


