gpt4 book ai didi

java - 算术表达式未在函数调用中解析

转载 作者:行者123 更新时间:2023-11-29 05:00:47 26 4
gpt4 key购买 nike

我有一个函数需要一个长值作为参数之一。

void doSomething(long limit, ...) {
//statements
}

在函数调用中,我将参数传递为,

doSomething(5 * 1024 * 1024 * 1024, ...);

该函数从不接收表达式的最终值 5368709120,而是接收 1073741824。我无法理解为什么会这样。

最佳答案

查看数字 5368709120。整数范围是-2,147,483,648到2,147,483,647

那里正在发生整数溢出。参数 (5 * 1024 * 1024 * 1024) 中的结果值超过了 int 最大值的限制。将任何值转换为 long,以便将结果存储到 long

doSomething(5L * 1024 * 1024 * 1024, ...); // look the literal L after 5 

关于java - 算术表达式未在函数调用中解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com