Java负数乘法
在普通数学术语中,-1756046391*-1291488517等于2267913749295792147 当我在java中输入完全相同的方程式时,我得到的答案是:-1756046391*-1291488517=19 有人能解释一下吗?溢出Java负数乘法,java,multiplication,Java,Multiplication,在普通数学术语中,-1756046391*-1291488517等于2267913749295792147 当我在java中输入完全相同的方程式时,我得到的答案是:-1756046391*-1291488517=19 有人能解释一下吗?溢出 签出Integer.MAX\u值。Java中的整数是32位2s补码值。您不能超过最大值。发布用于复制此值的确切代码 您很可能正在使用ints。使用LoSs,因为226791374929579214太大以至于不能适应INT.< /P>< P>使用其他人所说的L
签出Integer.MAX\u值。Java中的整数是32位2s补码值。您不能超过最大值。发布用于复制此值的确切代码
您很可能正在使用ints。使用LoSs,因为226791374929579214太大以至于不能适应INT.< /P>< P>使用其他人所说的LoSs,或者如果您的应用程序还不够,请考虑使用<代码> BigInteger < /C> > < P>当处理非常大的数字时,您需要确保所用的数据类型足够大以存储该数字。在java中,有以下基本数字类型:
type: min: max:
byte -128 127
short -32768 32767
int -2,147,483,648 2,147,483,647
long -9,223,372,036,854,775,808 9,223,372,036,854,775,807
因此,正如您所看到的,您的号码几乎可以放入一个长
。但是您肯定会考虑到这一点,因此您可能应该使用BigInt
类:
溢出。签出Integer.MAX_VALUE。尝试以下操作:
-1756046391L*-1291488517
。您正在对基本整数使用未经检查的操作。他应该使用BigInt对象,因为他的数字*5将溢出一个长整数。