在BCD中失败cobol_put_bcd_integer

时间:2017-09-25 19:17:35

标签: bcd

我有BCD功能,如下通过值80973148998493798,大小为7,但失败了..

我是新手,任何人都可以帮助我。 它下面的值得说明值传递(%lld)到大到适合%d BCD字节,因为大小是7而val更多,我试着增加数字[idx--] = 12但是没有用。 谢谢你的帮助

idx = digsiz - 1; 上面使用digsiz,bcd是内存分配 静态长数字[DIGITS];数字在顶部

声明
void cobol_put_bcd_integer(char *bcd, size_t size, long long val)
{
    size_t    digsiz;
    long      idx;
    long long left;

    digsiz = size * 2;
    idx    = digsiz - 1;
    left   = val;

     if (left < 0)
    {
    digits[idx--] = 13;
    left *= -1;
  }
 else
 {
    digits[idx--] = 12;
  }

   for (; idx >= 0; idx--)
   {
    digits[idx] = left % 10;
    left        = left / 10;
   }

    if (left > 0)
    {

的printf(“*************** ************************************ \ n“);         printf(“%s:值传递(%lld)到大到适合%d BCD字节\ n”,                  PRETTY_FUNCTION ,val,(int)size);         的printf(“************ ********************************* \ n“);         出口(-1);     }

0 个答案:

没有答案