十进制转BCD三种算法

来源:本站
导读:目前正在解读《十进制转BCD三种算法》的相关信息,《十进制转BCD三种算法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《十进制转BCD三种算法》的详细说明。
简介:本文主要介绍了十进制转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

#include

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);

}

}

提醒:《十进制转BCD三种算法》最后刷新时间 2024-03-14 01:02:54,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《十进制转BCD三种算法》该内容的真实性请自行鉴别。