integer-overflow

    1热度

    2回答

    我正在为Cay S. Horstmann编写的书籍“真正不耐烦的Java SE 8”进行练习。之一的基于Number类的改进的练习问: 编写一个程序,加,减,除,以及0和2 之间进行比较的数字 - 1,使用int值和无符号 操作。说明为什么divideUnsigned和remainderUnsigned是 必要的。 问题是,如果您添加2个无符号整数,总和可能溢出整数限制。我没有看到一种方法来避免这

    4热度

    2回答

    假设我有两个long long,a和b,我需要相乘,然后得到值k对于一些大的k,这样a,b和k都在long long的范围内,但不是int 。为简单起见,a,b < k。 因此,代码将是: long long a, b, k; cin >> a >> b >> k; cout << (a * b)%k << "\n"; 然而,因为a,b是如此之大,如果乘像上面,并且溢出和变为负,则模k将是

    12热度

    2回答

    我正在做两个涉及atoi的操作,我在想如何使用无符号整数来做到这一点,因为atoi似乎将它们转换为signed,导致环绕整数溢出。我想使用32位无符号整数,但atoi将我有效地限制为31位无符号整数。 if (multiplication_is_safe(atoi(argv[1]),atoi(argv[3]))) { printf("%s * %s = %u \n", argv

    1热度

    2回答

    我有一个np.int64类型的numpy数组,我尝试应用公式。 假设该阵列是一个称为total_img的二维数组,其尺寸为400 X 300像素。对于每个像素,我想计算下面的公式。 px = 255*(min - px)/(min - max)。我希望这些重新调整的像素始终存储在total_img中。我如何有效地使用numpy数组来实现这个功能? 请注意,min和max只是第1百分位和第99百分位

    0热度

    1回答

    对于类,我必须编写一个方法来检查将某个有理数与整数相乘是否会导致溢出。 我已经写了下面的代码和它的作品,但我有一种感觉这可能是短,但我不知道如何: /** * A method for multiplying a rational number with a given number */ public Rational multiply(long factor) { try {

    5热度

    1回答

    CBMC检测如下的可能的无符号此外溢出: l = (t + *b)&(0xffffffffL); c += (l < t); 我同意,在第一线溢出的可能性,但我照顾CBMC无法查看的下一行中的进位。 如果万一发生溢出,我将设置进位1.因此,由于我知道这一点,所以我希望我的代码能够工作,所以我想继续进行验证过程。 那么,我是如何告诉CBMC忽略这个bug并继续前进的呢?

    1热度

    1回答

    比方说,我创建了一个属性为int?类型的模型。 public class MyModel { [Range(-100, 100, ErrorMessage="Too large")] public int? MyValue { get; set; } } 在视图中,我使用它作为表单中的文本框发回服务器。 @using (Html.BeginForm()) {

    1热度

    2回答

    在x86 ASM中,添加或减去分支时是否可以禁止溢出?因此,例如,当从0x01减去0x02时,它将设置0x00而不是0xFF。 我希望这可能是不可能的,所以我也有兴趣回答这个问题的更加限制的形式,其中只有0x01被加​​/减。我有一个想法,是这样的(是的溢出标志): dec eax add eax,OF 我不知道其他的架构,但i386的我找不到,因为显然标志不能被这个操作码解释为整数并用于算

    1热度

    2回答

    我的任务是为我们的服务器的一种游戏模式制作统计“查看器”。它一直很好,但我唯一的问题是将时间转换为小时:分钟:秒。 制作实际游戏模式的开发人员以毫秒为单位存储在MySQL中播放的时间。令人遗憾的是,许多玩家有足够的时间容易导致整数溢出(以PHP计算)。 现在,我想知道什么是最简单和最有效的方法来解决这个问题。有没有一种方法可以在我不知道的MySQL查询中执行此操作?

    -1热度

    1回答

    我用C++编写了Sieve of Atkin的实现来计算大质数。它可以很好地找到10^8的素数,但当试图找到10^9的素数时,我得到的结果不正确。 它看起来像我负责的一个整数溢出,但我想不通这是怎么可能的。我在任何地方都使用uint64_t,期望的结果(22801763489)介于2^34和2^35之间。 我得到的结果是1326927009。 下面是相关代码: uint64_t getPrimes