我有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); }