⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 十进制转bcd三种算法的比较(haotz).htm

📁 网上收集的关于嵌入式开发的文档。拿来共享!
💻 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>//&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; Function:&nbsp; 
        DecimalToBcdAscii <BR>*<BR>// * Description: Convert <BR>decimal value 
        to 3 digit BCD ASCII value 
        *<BR>//&nbsp;&nbsp;<BR>*******************************************************************************<BR>**<BR>unsigned 
        char Hundreds,Tens,Ones;<BR>void DecimalToBcdAscii(signed short 
        DecimalValue)<BR>{<BR>&nbsp;&nbsp;&nbsp; Hundreds = 0; <BR>// Initialize 
        BCD values<BR>&nbsp;&nbsp; Tens = 0;<BR>&nbsp;&nbsp; Ones = 
        0;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp; Hundreds: <BR>// 
        Hundreds<BR>&nbsp;&nbsp;&nbsp;&nbsp; DecimalValue = DecimalValue - 
        100;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (DecimalValue &lt; 
        0)&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 
        Tens1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hundreds = Hundreds + 1; // 
        Increment <BR>Hundreds count<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        goto Hundreds;&nbsp; <BR>&nbsp;&nbsp; Tens1: <BR>// 
        Tens<BR>&nbsp;&nbsp;&nbsp;&nbsp; DecimalValue = DecimalValue + 
        100;<BR>&nbsp;&nbsp; Tens2:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        DecimalValue = DecimalValue - 
        10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (DecimalValue &lt; 
        0)&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 
        Ones1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tens = Tens + 1; // 
        <BR>Increment Tens count<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 
        Tens2;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; Ones1: <BR>// 
        Ones<BR>&nbsp;&nbsp;&nbsp;&nbsp; DecimalValue = DecimalValue + 
        10;<BR>&nbsp;&nbsp; Ones2:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        DecimalValue = DecimalValue - 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        if (DecimalValue &lt; 
        0)&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 
        AddAsciiOffset;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ones = Ones + 1; // 
        <BR>Increment Ones count<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto 
        Ones2;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; AddAsciiOffset: 
        <BR>// Add ASCII offset<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hundreds 
        = Hundreds + 48;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tens = Tens + 
        48;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ones = Ones + 48; 
        <BR>}<BR>#include&lt;reg51.h&gt;<BR>#include&lt;stdio.h&gt;<BR>main()<BR>{//clk=12Mhz<BR>int 
        i;<BR>//算法1 耗时0.25s<BR>for (i=0;i&lt;1000;i++)<BR>DecimalToBcdAscii(i); 
        <BR>//算法2 耗时0.42s<BR>for (i=0;i&lt;1000;i++)<BR>{int 
        t;<BR>&nbsp;Hundreds=i/100;<BR>&nbsp;t=i%100;<BR>&nbsp;Tens=t/10;<BR>&nbsp;Ones=i%10;<BR>&nbsp;}<BR>Hundreds 
        = Hundreds + 48;<BR>Tens = Tens + 48;<BR>Ones = Ones + 48; <BR>//算法3 
        耗时1.5s<BR>for (i=0;i&lt;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 + -