我正在尝试在Java中实现BigInteger逻辑。我以String的形式获取输入并将其转换并存储到int数组。
现在,在执行两个整数数组的添加时,会出现问题。
例如:
int first_array[0]=999999999
int Second_array[0]=1;
我会得到1000000000
的加法值,我将把第10位作为结转。
carry_over=(first_array[0]+Second_array[0])/1000000000 ;//1
add_array[0]=(first_array[0]+Second_array[0])%1000000000 ;//000000000
我对add_array[0]
的期望是000000000
,但是它存储为0.也就是说,它将它存储为单个零而不是九个零。
有什么办法可以解决这个问题吗?
答案 0 :(得分:0)
它与000000000相同。数组的结果应该相同。唯一的问题是当数字作为字符串打印覆盖" BigInteger"中的toString()方法时。因此,对于每个位置,它调用String.format("%09d%n",n)。然后,您将用n个9位数代表任意数字
答案 1 :(得分:0)
不要将格式与数据混淆。
000000000与0相同。
前导零会导致问题,因为前导零意味着八进制字面值。