📄 十进制转bcd三种算法的比较(haotz).htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0037)http://www.mcu51.com/list.asp?id=1248 -->
<HTML><HEAD><TITLE>十进制转bcd三种算法的比较(haotz)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="十进制转bcd三种算法的比较(haotz).files/style.css" rel=stylesheet>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<DIV align=center>
<CENTER></CENTER></DIV>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=0 width="97%"
borderColorLight=#000000 border=1>
<TBODY>
<TR>
<TD width="100%" bgColor=#d0d0d0>
<P align=center>文章编号:1248----加入日期:2004-3-12 </P></TD></TR>
<TR>
<TD width="100%">
<P align=right><A href="javascript:self.close()">『关闭窗口』</A></P></TD></TR>
<TR>
<TD width="100%">
<P align=center><B>十进制转bcd三种算法的比较(haotz)</B></P></TD></TR>
<TR>
<TD width="100%">
<BLOCKQUOTE><BR>//
<BR>*********************************************************************<BR>************
<BR><BR>// * Function:
DecimalToBcdAscii <BR>*<BR>// * Description: Convert <BR>decimal value
to 3 digit BCD ASCII value
*<BR>// <BR>*******************************************************************************<BR>**<BR>unsigned
char Hundreds,Tens,Ones;<BR>void DecimalToBcdAscii(signed short
DecimalValue)<BR>{<BR> Hundreds = 0; <BR>// Initialize
BCD values<BR> Tens = 0;<BR> Ones =
0;<BR> <BR> Hundreds: <BR>//
Hundreds<BR> DecimalValue = DecimalValue -
100;<BR> if (DecimalValue <
0) <BR>
{<BR> goto
Tens1;<BR>
}<BR> Hundreds = Hundreds + 1; //
Increment <BR>Hundreds count<BR>
goto Hundreds; <BR> Tens1: <BR>//
Tens<BR> DecimalValue = DecimalValue +
100;<BR> Tens2:<BR>
DecimalValue = DecimalValue -
10;<BR> if (DecimalValue <
0) <BR>
{<BR> goto
Ones1;<BR>
}<BR> Tens = Tens + 1; //
<BR>Increment Tens count<BR> goto
Tens2; <BR> Ones1: <BR>//
Ones<BR> DecimalValue = DecimalValue +
10;<BR> Ones2:<BR>
DecimalValue = DecimalValue - 1;<BR>
if (DecimalValue <
0) <BR>
{<BR> goto
AddAsciiOffset;<BR>
}<BR> Ones = Ones + 1; //
<BR>Increment Ones count<BR> goto
Ones2; <BR> AddAsciiOffset:
<BR>// Add ASCII offset<BR> Hundreds
= Hundreds + 48;<BR> Tens = Tens +
48;<BR> Ones = Ones + 48;
<BR>}<BR>#include<reg51.h><BR>#include<stdio.h><BR>main()<BR>{//clk=12Mhz<BR>int
i;<BR>//算法1 耗时0.25s<BR>for (i=0;i<1000;i++)<BR>DecimalToBcdAscii(i);
<BR>//算法2 耗时0.42s<BR>for (i=0;i<1000;i++)<BR>{int
t;<BR> Hundreds=i/100;<BR> t=i%100;<BR> Tens=t/10;<BR> Ones=i%10;<BR> }<BR>Hundreds
= Hundreds + 48;<BR>Tens = Tens + 48;<BR>Ones = Ones + 48; <BR>//算法3
耗时1.5s<BR>for (i=0;i<1000;i++)<BR>{unsigned char
buf[5];<BR>sprintf(buf,"%3d",i);<BR>}<BR>} <BR><BR>(文章推荐人:电池)
<BR><BR></BLOCKQUOTE></TD></TR>
<TR>
<TD width="100%">
<P align=center> </P></TD></TR></TBODY></TABLE></CENTER></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -