我使用简单函数来乘以大整数。有时会包含一个前导零字节来输出。为什么会发生这种情况以及如何阻止它?
PS:a和b已经小于mod
#!/bin/bash
python test.py &
kill $!
答案 0 :(得分:4)
如果(正)值的第一个字节为128到255,则会添加额外的零字节。
需要此字节,以便生成的字节至少有一个符号位(https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#toByteArray%28%29)
BigInteger.valueOf(5L).toByteArray()
返回一个只有一个字节(5)的字节数组。
BigInteger.valueOf(128L).toByteArray()
返回一个只有两个字节的字节数组(0和128表示无符号表示)。这是为了区分结果
BigInteger.valueOf(-128L).toByteArray()
还返回一个包含两个字节的字节数组(255,无符号表示128)