Int相乘为负数问题

记录一次int类型相乘最后变成负数的问题。

int a = 60000000;

int b = 36;

当a*b 你会发现得当一个负数。

这是因为int(int 32)及2的32次方 取值范围 -2,147,483,648~2,147,483,647

a*b超过这个范围 int就会溢出,得到相乘的值就是一个负数

对于较大的值,可以使用long替换int

long也就是Int64,取值范围是-9223372036854775808~9223372036854775807

这样一般不会超出了

猜你喜欢

转载自blog.csdn.net/qq_33515628/article/details/106384119