怎样把一个整形转化为n个字节的BCD码?

解决方案 »

  1.   


    bool Int2BCD( unsigned int num, char* bcd )
    {
    if( num > 255 ) // out of range
    return false; int len = 0;
    char buff[8] = {0}; while ( num != 0 ) {
    if( num % 2 == 1 )
    buff[len++] = '1';
    else
    buff[len++] = '0'; num = num / 2;
    } for( int i=0; i < 8; i++ )
    {
    if( i < len )
    bcd[7-i] = buff[i];
    else
    bcd[7-i] = '0';
    }
    }
      

  2.   

    谢谢。有一段代码
    void DecBcd(unsigned char* *s,int n,int m)
    {

    int  j;       if( m < 0 )
    {
    bSign = FALSE;
    m = -m;
    } for( j=0 ; j<n ; j++ )
    {
      **s = (unsigned char)(m%100);
    **s += **s/10*6;
    (*s)++;
    m /= 100;
    }
    }
    m是要转换的值,n是转换的字节数。
    楼上能给我解释一下码?
      

  3.   

    谢谢。有一段代码
    void DecBcd(unsigned char* *s,int n,int m)
    {

    int  j;       if( m < 0 )
    {
    m = -m;
    } for( j=0 ; j<n ; j++ )
    {
      **s = (unsigned char)(m%100);
    **s += **s/10*6;
    (*s)++;
    m /= 100;
    }
    }
    m是要转换的值,n是转换的字节数。
    楼上能给我解释一下码?
      

  4.   

    这在msdn中应该有函数的吧,不行就自己写呗:用位运算符处理应该可以的吧