📄 bcd码转换(源代码).txt
字号:
BCD码转换(源代码)
http://www.lslnet.com/linux/dosc1/66/linux-428783.htm
这是我写的一个用于BCD码转换的小程序。
#include <stdio.h>;
int DEC_BCD( int d, unsigned char *b, int w )
{
unsigned char tmp[16], *p1, *p2;
unsigned int i;
sprintf( (char *)tmp, "%d", d );
p1=tmp;
p2=b;
if( strlen(tmp) >; w ) { /*数值超限*/
printf( "number width overflow!" );
return( -1 );
}
if( ( strlen( tmp )%2 ) != 0 ) {
*p2 = (int)*p1 - '0';
p1++;
p2++;
}
while( *p1 != (char)0 ) {
*p2 = (int)*p1 - '0';
*p2 <<= 4;
p1++;
*p2 |= ( (int)*p1 - '0' );
p1++;
p2++;
}
*p2=(char)0;
return( 0 );
}
void BCD_DEC( unsigned char *b, int *d )
{
unsigned char tmp[16], *p1, *p2;
p1=b;
p2=tmp;
memset( tmp, 0, sizeof(tmp) );
while( *p1 != (char)0 ) {
*p2 = ( (*p1 >;>;4) & 0X0F ) + '0';
p2++;
*p2 = ( *p1 & 0X0F ) + '0';
p2++;
p1++;
}
*d=atoi( tmp );
return;
}
DEC_BCD用于将整形值转换为BCD码;
BCD_DEC用于将BCD码转换回整形值。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -