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

📄 10进制转bcd码算法.txt

📁 这是10进制转化到BCD码的三种算法
💻 TXT
字号:
十进制转bcd三种算法 

unsigned char Hundreds,Tens,Ones;
void DecimalToBcdAscii(signed short DecimalValue)
{
    Hundreds = 0; 
// Initialize BCD values
   Tens = 0;
   Ones = 0;
  
   Hundreds: 
// Hundreds
     DecimalValue = DecimalValue - 100;
       if (DecimalValue < 0)   
       {
          goto Tens1;
          }
       Hundreds = Hundreds + 1; // Increment 
Hundreds count
       goto Hundreds;  
   Tens1: 
// Tens
     DecimalValue = DecimalValue + 100;
   Tens2:
       DecimalValue = DecimalValue - 10;
       if (DecimalValue < 0)   
       {
         goto Ones1;
         }
       Tens = Tens + 1; // 
Increment Tens count
       goto Tens2;    
   Ones1: 
// Ones
     DecimalValue = DecimalValue + 10;
   Ones2:
       DecimalValue = DecimalValue - 1;
       if (DecimalValue < 0)   
       {
          goto AddAsciiOffset;
          }
       Ones = Ones + 1; // 
Increment Ones count
       goto Ones2;    
    AddAsciiOffset: 
// Add ASCII offset
       Hundreds = Hundreds + 48;
       Tens = Tens + 48;
       Ones = Ones + 48; 
}
#include<reg51.h>
#include<stdio.h>
main()
{//clk=12Mhz
int i;
//算法1 耗时0.25s
for (i=0;i<1000;i++)
DecimalToBcdAscii(i); 
//算法2 耗时0.42s
for (i=0;i<1000;i++)
{int t;
 Hundreds=i/100;
 t=i%100;
 Tens=t/10;
 Ones=i%10;
 }
Hundreds = Hundreds + 48;
Tens = Tens + 48;
Ones = Ones + 48; 
//算法3 耗时1.5s
for (i=0;i<1000;i++)
{unsigned char buf[5];
sprintf(buf,"%3d",i);
}
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -