当前位置: 首页 > 知识库问答 >
问题:

Java计算后的饱和问题

狄新立
2023-03-14

我正在创建一个反向波兰计算器,并且有饱和度的问题。我已经实现了一个堆栈,并且发现我可以在没有问题的情况下得到的最大数字是2147483647。所以如果我把这个数字推到堆栈上,然后加1,我得到的结果是-2147483648(负)。我需要做的是不要返回这个负数,而是返回原来的数字2147483647。基本上有这个作为限制。这同样适用于事物的负面,那里的限制是-2147483648的。让我知道我是否错过了任何信息或者你需要看代码。

共有1个答案

阎鸿煊
2023-03-14

最大的int值是2147483647,最小的是-2147483648int值是环绕的,所以当你把1加到2147483647时,你会得到-2147483648,当你从-2147483648中减去1你会得到2147483647

如果你不想要这种行为,你可以这样做

int a = 2147483647;
a += 1.0;                   // a is still 2147483647

int a = 2147483647;
int b = (int) (a + 1.0);    // b is also 2147483647

这些工作,因为1.0使用(无溢出)计算,结果被转换回int使用大于整数的规则。MAX_VALUE只是成为整数。MAX_VALUE

 类似资料:
  • 我有一个由数字组成的数据集。我想在一份报告中陈述这一点。我已经设法生成了一个具有以下格式的报告。这有点类似于会计中的试算表。但事实并非如此!表中的数据在其值中有4个小数点。但在报告中,它应该四舍五入到小数点后两位。报告还必须准确,因此需要使用。 基于@marciob、@user3679868和@joopeggen的编辑3决定根据舍入值进行计算。差额。047(.56-.553)显然被冲销了(审计标准

  • 问题内容: 使a饱和的最简单方法是什么? 问题答案: 用途: 更新: 确实有一种更简单的方法。您可以使用该类。该类的优点是它提供了一个静态实用程序方法(即),该方法将返回图像的变灰版本。 话虽如此,我认为使实例饱和的最简单方法是:

  • 本文向大家介绍ThreadPoolExecutor 饱和策略?相关面试题,主要包含被问及ThreadPoolExecutor 饱和策略?时的应答技巧和注意事项,需要的朋友参考一下 如果当前同时运行的线程数量达到最大线程数量并且队列也已经被放满了任时, 定义一些策略: :抛出 来拒绝新任务的处理。 :调用执行自己的线程运行任务,也就是直接在调用方法的线程中运行()被拒绝的任务,如果执行程序已关闭,则

  • 我是java的新手,我正在尝试编写一个包含两个参数的程序: 我们必须对素数求和的数 我们必须执行此操作的线程数 所以我使用了一个名为Eratosthene的方法来存储一个布尔数组,如果一个数字是素数,我们将其标记为真,然后我们将这个数字的所有倍数标记为假。 我试着把我的数组分成每个线程的子数组,在每个子数组中进行运算,最后把所有子数组的结果相加。 但我不知道我做错了哪里:有时程序没有给出好的结果。

  • 这是一个理论上的问题: 我必须计算一个表达式,我已经从中缀转换到后缀。后缀保存在中,因为我希望避免使用。这样我就知道数字之间的除法在哪里,我可以按“正确”的顺序访问它。 它看起来是这样的: 现在我想用两个堆栈: null 如果我到达一个运算符,并且数量计数至少为2,我将执行该操作并将其推到目标堆栈上。到达原始堆栈的末尾(现在是空的),我会把所有的东西都传递给它,然后从头开始,直到只剩下结果。 我现

  • 在GATE计算信号量时会问到这些问题。 一般来说,问题非常简单,只包含减法和加法。 以下类型的问题可以在GATE中询问。 计数信号量初始化为12。然后在这个信号量上计算10P(等待)和4V(信号)操作。 结果是什么? 因此,计数信号量的最终值是。