7.25用非压缩bcd码的用处怎样表示

BCD码怎么转化成10进制输出?-CSDN论坛
BCD码怎么转化成10进制输出?
文件里有一个数(BCD码格式),占8个字节,该怎么转化成十进制输出来呢?
不知道,帮顶。。
有两种BCD码呀
压缩的BCD码&还是&非压缩的BCD码
BCD是什么?
用二进制数来表示十进制数的表示方法。
CD有两种形式,pack&BCD,&unpack&BCD
1.pack&BCD,压缩的BCD码
它是一种用四位二进制数表示十进制数.&首先是用四位二制数表示个数,然后用四位二进制数表示十位,&然后百位...。
比如:251需要三个四位二进制数表示。&1表示为0001;5表示为0101;2表示为0010.
最后251的BCD数据表示为01.
2.unpack&BCD.非压缩BCD
非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。
ASCII和BCD码对照表:
十进制数字&ASCII码&压缩BCD码&非压缩BCD码&
  BCD(Binary&Coded&Decimal)是用二进制编码表示的十进制数(见表3.3),十进制数采用0~9十个数字,是人们最常用的。在计算机中,同一个数可以用两种BCD格式来表示:①压缩的BCD码&②非压缩的BCD码
  压缩的BCD码:
  压缩的BCD码用4位二进制数表示一个十进制数位,整个十进制数用一串BCD码来表示。例如,十进制数59表示成压缩的BCD码为,十进制数1946表示成压缩的BCD码为00&0110。
  非压缩的BCD码:
  非压缩的BCD码用8位二进制数表示一个十进制数位,其中低4位是BCD码,高4位是0。例如,十进制数78表示成压缩的BCD码为00&1000。&
 &从键盘输入数据时,计算机接收的是ASCII码,要将ASCII码表示的数转换成BCD码是很简单的,只要把ASCII码的高4位清零即可。
ASCII和BCD码
十进制数字& &ASCII码&&&&&&&&&&&&压缩BCD码&&&&&&&&&&&&& &&&&非压缩BCD码&
0&&&&&&&&&&&&&&&&&&&&&&&& 0000&&&&&&&&&&&&&&&&&&&&&&&&&&&
1&&&&&&&&&&&&&&&&&&&&&&&& 0001&&&&&&&&&&&&&&&&&&&&&&&&&&&
2&&&&&&&&&&&&&&&&&&&&&&&& 0010&&&&&&&&&&&&&&&&&&&&&&&&&&&
3&&&&&&&&&&&&&&&&&&&&&&&& 0011&&&&&&&&&&&&&&&&&&&&&&&&&&&
4&&&&&&&&&&&&&&&&&&&&&&&& 0100&&&&&&&&&&&&&&&&&&&&&&&&&&&
5&&&&&&&&&&&&&&&&&&&&&&&& 0101&&&&&&&&&&&&&&&&&&&&&&&&&&&
6&&&&&&&&&&&&&&&&&&&&&&&& 0110&&&&&&&&&&&&&&&&&&&&&&&&&&&
7&&&&&&&&&&&&&&&&&&&&&&&& 0111&&&&&&&&&&&&&&&&&&&&&&&&&&&
8&&&&&&&&&&&&&&&&&&&&&&&& 1000&&&&&&&&&&&&&&&&&&&&&&&&&&&
9&&&&&&&&&&&&&&&&&&&&&&&& 1001&&&&&&&&&&&&&&&&&&&&&&&&&&&
void&BcdToAscii&(char&*ascii_buf,&const&BYTE&*bcd_buf,&int&len)
for&(i=0;&i&&i++)
&&if&(i&&&1)&ch&=&*(bcd_buf++)&&&0x0f;
&&else&ch&=&*bcd_buf&&&&4;
&&ascii_buf[i]&=&ch&+&((ch&&&9)?&''A''-10&:&''0'');
unsigned&long&bcdtostr(char&*str,&int&maxdigits)
&&&&static&char&w[100];
&&&&char&*p&=&w;
&&&&int&hi,&
&&&&int&v;
&&&&*p&=&'\0';
&&&&while&((maxdigits&&&0)&&&&str&&&&*str)
&&&&&&&&v&=&*str++;
&&&&&&&&hi&=&(v&&&0xf0)&&&&4;
&&&&&&&&if&(hi)
&&&&&&&&&&&&if&(hi&==&0x0a)
&&&&&&&&&&&&&&&&hi&=&0;
&&&&&&&&&&&&*p++&=&'0'&+&
&&&&&&&&&&&&*p&=&'\0';
&&&&&&&&&&&&--
&&&&&&&&&&&&if&((lo&=&v&&&0x0f))
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&if&(lo&==&0x0a)
&&&&&&&&&&&&&&&&&&&&lo&=&0;
&&&&&&&&&&&&&&&&*p++&=&'0'&+&
&&&&&&&&&&&&&&&&*p&=&'\0';
&&&&&&&&&&&&&&&&--
&&&&&&&&&&&&}
&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&
&&&&&&&&else
&&&&&&&&&&&&
&&&&return&strtoul(w,NULL,10);
bcdtostr&利用到的转换关系
十进制数字& &ASCII码&&&&&&&&&&压缩BCD码&
0&&&&&&&&&&&&&&&&&&&&&&&& 1010&&
1&&&&&&&&&&&&&&&&&&&&&&&& 0001&&
2&&&&&&&&&&&&&&&&&&&&&&&& 0010&&
3&&&&&&&&&&&&&&&&&&&&&&&& 0011&&
4&&&&&&&&&&&&&&&&&&&&&&&& 0100&&
5&&&&&&&&&&&&&&&&&&&&&&&& 0101&&
6&&&&&&&&&&&&&&&&&&&&&&&& 0110&&
7&&&&&&&&&&&&&&&&&&&&&&&& 0111&&
8&&&&&&&&&&&&&&&&&&&&&&&& 1000&&
9&&&&&&&&&&&&&&&&&&&&&&&& 1001
各种BCD码&的转换关系会不一样
所以&不仅要清楚是压缩BCD码&还是非压缩BCD码&
还要清楚转换关系
用汇编做容易些
非常感谢各位热心的朋友,我在另外一个帖子(http://community.csdn.net/Expert/topic/.xml?temp=.5711786)里学会了,非常感谢!
回复导读:乘法的非压缩BCD码调整指令AAM,该指令跟在以AX为目的操作数的MUL指令之后,AAM指令根据结果设置SF、ZF和PF,除法的非压缩BCD码调整指令AAD,AAD调整指令与其他的调整指令应用情况不同,然后再用DIV指令除以一个非压缩BCD码数,AAD指令根据结果设置SF、ZF和PF,逻辑与指令AND,AND指令对两个操作数执行按位的逻辑与运算:即只有相“与”的两位都是1,AND指令设置CF=
mov ax,0608ax=0608h,表示非压缩BCD码68
mov bl,09bl=09h,表示非压缩BCD码9
sub al,二进制减法:al=08h-09h=十进制调整:ax=0509h 实现非压缩BCD码减法:68-9=59
乘法的非压缩BCD码调整指令AAM
AAMAX←将AX中的乘积调整为非压缩BCD码
该指令跟在以AX为目的操作数的MUL指令之后,对AX进行非压缩BCD码调整。利用MUL相乘的两个非压缩BCD码的高4位必须为0。AAM指令根据结果设置SF、ZF和PF,但OF、CF和AF无定义。
例2.27c:非压缩BCD码的乘法运算
mov ax,0608ax=0608h,表示非压缩BCD码68
mov bl,09bl=09h,表示非压缩BCD码9二进制乘法:ax=08h×09h=0048十进制调整:ax=0702h 实现非压缩BCD码乘法:8×9=72
除法的非压缩BCD码调整指令AAD
AADAX←将AX中的非压缩BCD码扩展成二进制数,即:AL←1Od×AH+AL,AH←0
AAD调整指令与其他的调整指令应用情况不同。它是先将存放在AX 寄存器中的两位非压缩BCD码数进行调整,然后再用DIV指令除以一个非压缩BCD码数,这样得到非压缩BCD码数的除法结果。其中,要求AL、AH和除数的高4位为0。AAD指令根据结果设置SF、ZF和PF,但OF、CF和AF无定义。
例2.27d:非压缩BCD码的除法运算
mov ax,0608ax=0608h,表示非压缩BCD码68
mov bl,09bl=09h,表示非压缩BCD码9二进制扩展:ax=68=0044h 除法运算:商al=07h,余数ah=05实现非压缩BCD码除法:68=7×9+5
逻辑与指令AND
AND dest,dest←dest ∧ src
(符号 ∧ 表示逻辑与)
AND指令对两个操作数执行按位的逻辑与运算:即只有相“与”的两位都是1,结果才是1;否则,“与”的结果为0。AND指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
例2.28a:逻辑与运算
mov al,45h
and al,31al=01h,CF=OF=0、SF=0、ZF=0、PF=0
AND指令可用于复位某些位,但不影响其他位。这时只需将要置0的位同“0”与,而维持不变的位同“1”与就可以了。
例2.28b:将BL中D0和D3清0,其余位不变
and bl,b 逻辑或指令OR
OR dest,dest←dest ∨ src
(符号 ∨ 表示逻辑或)
OR指令对两个操作数执行按位的逻辑或运算:即只要相“或”的两位有一位是1,结果就是1;否则,“或”的结果为0。
例2.29a:逻辑或运算
mov al,45h
or al,31al=75h,CF=OF=0、SF=0、ZF=0、PF=0
OR指令可用于置位某些位,而不影响其他位。这时只需将要置1的位同“1”或,维持不变的位同“0”或即可。OR指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
例2.29b:将BL中D0和D3置1,其余位不变
or bl,b 逻辑异或指令XOR
XOR dest,dest←dest ㈩ src
(符号 ㈩ 表示逻辑异或)
XOR指令对两个操作数执行按位的逻辑异或运算:即相“异或”的两位不相同时,结果就是1;否则,“异或”的结果为0。XOR指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
例2.30a:逻辑异或运算
mov al,45h
xor al,31al=74h,CF=OF=0、SF=0、ZF=0、PF=1
XOR可用于求反某些位,而不影响其他位。要求求反的位同“1”异或,维持不变的位同“0”异或。
例2.30b:将BL中D0和D3求反,其余位不变
XOR指令经常给寄存器清0,同时使CF也清0;例如:
xor ax,ax=0,CF=OF=0、SF=0、ZF=1、PF=1 逻辑非指令NOT
NOT reg/reg/mem← ~reg/mem
(符号 ~ 表示逻辑反)
NOT指令对操作数按位取反:即原来为0的位变成1,原来为1的位变成0。注意,NOT 指令不影响标志位。
例2.31:逻辑非运算
mov al,45h al=0bah,标志不变 测试指令TEST
TEST dest,dest ∧ src
(符号 ∧ 表示逻辑与)
TEST指令对两个操作数执行按位的逻辑与运算,但结果不回到目的操作数。TEST指令执行的操作与AND指令相同,但不保存执行结果,只根据结果来设置状态标志。TEST指令设置CF = OF = 0,根据结果设置SF、ZF和PF状态,而对AF未定义。
TEST指令通常用于检测一些条件是否满足,但又不希望改变原操作数的情况。这条指令之后,一般都是条件转移指令,目的是利用测试条件转向不同的程序段。
例2.32:TEST指令用于测试某一(几)位是否(同时)为0或为1。
test al,01测试AL的最低位D0
标志ZF=0,即D0=1,则程序转移到there
... ;否则ZF=1,即D0=0,顺序执行 there: ... 移位指令
移位指令分成逻辑移位指令和算术移位指令,分别具有左移或右移操作。
SHL reg/mem,1/CL ;逻辑左移:reg/mem左移1/CL位,最低位补0,最高位进入CF
SHR reg/mem,1/CL ;逻辑右移:reg/mem右移1/CL位,最高位补0,最低位进入CF
SAL reg/mem,1/CL ;算术左移,功能与SHL相同
SAR reg/mem,1/CL ;算术右移:reg/mem右移1/CL位,最高位不变,最低位进入CF
四条(实际为三条)移位指令的目的操作数可以是寄存器或存储单元。后一个操作数表示移位位数,该操作数为1,表示移动一位;当移位位数大于1时,则用CL寄存器值表示,该操作数表达为CL。
移位指令按照移入的位设置进位标志CF,根据移位后的结果影响SF、ZF、PF,对AF没有定义。如果进行一位移动,则按照操作数的最高符号位是否改变,相应设置溢出标志OF:如果移位前的操作数最高位与移位后操作数的最高位不同(有变化),则OF = 1;否则OF = 0。当移位次数大于1时,OF不确定。
逻辑左移和算术左移实际上是同一条指令的两种助记符形式,两者完全相同,建议采用SHL。在指令系统中还有类似的情况。采用多个助记符只是为了方便使用,增加可读性。 移位指令的功能
例2.33:移位指令的功能
mov al,0f0al=f0h
shl al,1 ;al=e0h,CF=1,SF=1、ZF=0、PF=0,OF=0
shr al,1 ;al=70h,CF=0,SF=0、ZF=0、PF=0、OF=1
sar al,1 ;al=38h,CF=0,SF=0、ZF=0、PF=0、OF=0
sar al,al=03h,CF=1,SF=0、ZF=0、PF=1 包含总结汇报、外语学习、行业论文、IT计算机、旅游景点、计划方案、人文社科以及汇编语言指令运用整理等内容。本文共8页
相关内容搜索bcd码作用_牛宝宝文章网 > 专题 > 告诉你一个BCD码使用的一个场合,你就会明白了:比如你有普通编码的8位二进制数0001
1001你想要将这个数用2个数码管显示出来(数码管就像计算器上的一个数位,可以形象地显示0——9的数字的)那你的电路怎么设计呢?
请问一下这段话怎么理解啊."十进制数25D,表示为压缩BCD码时为25H;表示为非压缩BCD码时要占用两个字节".25H转化为十进制不是5+25*16吗?0205H转化为十进制不是2*16*16+5吗?上面打错了
应//(16位无符号二进制数)unsigned char
uc[5];//(BCD码表示的5位十进制数)uc[4]=(ui/10000)%10;uc[3]=(ui/100在我们日常生产生活中用的最多的数字是十进制数字,而单片机系统的所有数据本质上都是二进制的,所以聪明的前辈们就给我们创造了BCD码。
BCD码(Binary-CodedDecimal)亦称二进码十进Delphi支持的BCD码的数据类型名为TBCD,在FMTBcd单元中。TBCD定义如下:type TBcd = packed record
Precision:B{ 精度,1..64 }Si//(16位无符号二进制数)unsigned char
uc[5];//(BCD码表示的5位十进制数)uc[4]=(ui/10000)%10;uc[3]=(ui/100BCD码(Binary-Coded
Decimal?6?0)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数。BCD码各位的数值范围为2#1,对应于十进制数0~
当用来表示十进制数字0——9时,用二进制代码与8421BCD代码完全相同。而当表示的十进制数字大于9时,用二进制代码与8421BCD代码表达就完全不同了。用二进制表示就是二进制数字安权重求和,其值为十用二进制数来表示十进制数的表示方法。CD有两种形式,pack BCD, unpack BCD1.pack
BCD,压缩的BCD码它是一种用四位二进制数表示十进制数. 首先是用四位二制数表示个数,然后用四位二进制数表示十
BCD码的最大值是9999,因为1个字十六个位,每4个为代表1个十进制的数;1001:对应的就是9999,最大值以上的二进制数,在十六进制里的表示也是16#9999,但是它十进首先,上网百度、搜搜和谷歌搜了好多帖子,目前只实现了更改 \\boot\\bcd 中最后的2个字符CD,限制还是很大的,也不够完美。
BCD采用四位编码代表一个十进制或十六进制数字,最高位为1代表8,其后依次为4、2、1,然后把这些值加起来就是它所代表的那个数字。BCD编码abcd可以用公式8a+4b+2c+d来表示(其中a、b、cElectrolux BCD-200怎么调节温度啊?夏季温度都还正常 可是现在冬天了 感觉冰箱里和外面温度一样 我也把低温补偿开关拨至“No/开”位置
可是没用啊 冷冻室也不冻没有说明书Electrolux BCD-2
在正三棱锥A-BCD中,E,F分别是AB,BC的中点,EF⊥DE,BC=1,求正三棱锥A-BCD的体积.在正三棱锥A-BCD中,E,F分别是AB,BC的中点,EF⊥DE,BC=1,求正三棱锥A-BCD的体积.的参考答案
小天鹅BCD-150冰箱怎么调温度啊我家冰箱下面的冷藏为什么也是冷冻啊,里面的一个开关是干嘛的啊,也不懂哪种状态下是开哪种是关,开了又有什么用,关了又有什么用小天鹅BCD-150冰箱怎么调温度啊的参考答案压缩机,停机吗GRLDR篇( r3 J9 m\" r4 M\'
{实现多系统引导的方法很多,简单的方法直接写入bootmgr引导,编辑BCD文件,但是大黑屏真的很难看,以前使用syslinux引导,分辨率支持640*480,后来又使美菱BCD-109怎么调温度美菱冰箱BCD-109的温度怎么调 是数字越大越冷还是越小越冷 在网上看的一般是数字越大越冷 有人说美菱的是越小越冷
我不知道到底是哪个
麻烦各位告诉下美菱BCD-109怎么调温度的参考答求二维码 QR码编码规则已知汉字的BCD码,我想在方格纸上画一个记录汉字的二维码,求二维码的详细编码规则,求二维码
QR码编码规则的参考答案this.myRotate = Rotates.Rotate0;this.my
容声冰箱bcd-288wym的电磁阀的电阻是多大我的问题是变温室不制冷,测试两组电磁阀的电压空载时195v左右,压缩机旁边有两个电磁阀,接冷冻电磁阀的负载电压下降125-130左右,接控制冷藏和变温室的电磁阀的那组电压
微软从Windows7开始改变了多系统菜单的编辑方式,将xp时代的boot.ini变成了BCD。在没有GUI工具的情况下,手动编辑BCD不仅复杂而且有着系统无法启动的风险!但是,在一块硬盘上安装多种操作系统,比如,Wi华凌牌BCD-178W、BCD-182W型电冰箱电路
已知:如图,凸五边形ABCDE中,面积S三角形ABC=S三角形BCD1在凸五边形ABCDE中,S三角形ABC=S三角形BCD=S三角形CDE=S三角形DEA=S三角形EAB=1,求S五边形ABCDE的值已知:如图,凸五
在正三棱锥A-BCD中,E,F分别是AB,BC的中点,EF⊥DE且BC=2在正三棱锥A-BCD中,E,F分别是AB,BC的中点,EF⊥DE且BC=2的参考答案∵EF∥AC,EF⊥DE∴AC⊥DE∵AC⊥BD(正三棱锥性
已知三棱锥A-BCD的所有棱长都为2,则该三棱锥的外接球的表面积为已知三棱锥A-BCD的所有棱长都为2,则该三棱锥的外接球的表面积为的参考答案设三棱锥A-BCD的所有棱长都是a,作AE⊥平面BCD于E,连,BE,易知E七段LED显示译码器的BCD---七段显示译码器(74LS48)因为计算机输出的是BCD码,要想在数码管上显示十进制数,就必须先把BCD码转换成 7
段字型数码管所要求的代码。我们把能够将计算机输出的BCD码换成 7 分享到:推荐文章最新文章【图文】BCD码调整_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
&&方便学习汇编语言
大小:227.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢扫二维码下载作业帮
2亿+学生的选择
下载作业帮安装包
扫二维码下载作业帮
2亿+学生的选择
十进制数25用8421BCD码来表示为多少?
扫二维码下载作业帮
2亿+学生的选择
两片8421 高位的bcd码是0010低位的是0101
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 26的压缩bcd码是 的文章

 

随机推荐