Does BigInteger ever overflows?

前端 未结 5 456
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-17 13:25

The API docs says

All of the details in the Spec concerning overflow are ignored, as BigIntegers are made as large as necessary to accommodate the r

5条回答
  •  [愿得一人]
    2021-01-17 14:18

    BigInteger will never overflow assuming you have enough memory to handle it.

    To answer your question of why we let some types overflow and not others:

    BigInteger is not really a type. It's a class. It's a wrapper class designed to give you the same functionality as an int, but allows you to use numbers as big as you need without the worry of overflow.

    Types do overflow because they are simply a couple of bytes (exact amount depends on the type) of memory, and once that small amount of memory overflows, so do the numbers.

    No class "overflows" unless it is specifically designed to do so (or if you run out of resources). A class is defined with enough memory for everything it contains, which would mostly be references to other classes or other data structures.

提交回复
热议问题