?? 十進制轉(zhuǎn)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>十進制轉(zhuǎn)bcd三種算法的比較(haotz)</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="十進制轉(zhuǎn)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>十進制轉(zhuǎn)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 + -