bcd码转换(源代码).txt

来自「BCD码转换(源代码) 这是我写的一个用于BCD码转换的小程序。」· 文本 代码 · 共 66 行

TXT
66
字号
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 + =
减小字号Ctrl + -
显示快捷键?