计算Java中字节溢出的次数

时间:2017-04-12 07:45:23

标签: java integer-overflow

我的for循环有一些问题。

我试图计算在某些限制内字节溢出多少次,但我不知道我应该如何重置字节的值以及如何使for循环工作,因为现在有问题,我可以&# 39;找不到:

foo()

1 个答案:

答案 0 :(得分:0)

有两个问题:

  • 重置您的循环计数器值。所以它永远不会达到极限!
  • 即使你不这样做,你的限制也是一个int;不是一个字节。因此,字节计数器会在达到该限制之前溢出(!)(如果限制大于Byte.MAX_VALUE)!

因此:您必须使用循环的“int”计数器;和溢出检查的字节值:

 for (int i=0, j = -128; i < limit; i++, j++) {
    if (j == Byte.MAX_VALUE) {
        countOverflows++;
        j = Byte.MIN_VALUE;
        System.out.println(countOverflows);
    }