## digitalmars.D.learn - Is integer overflow defined?

• Sean Eskapp (2/2) Sep 01 2011 Is integer overflow defined (for instance, as being mod 2^size)? Can I
• Timon Gehr (6/8) Sep 01 2011 I am quite sure that all operations are defined as operations on two's
Sean Eskapp <eatingstaples gmail.com> writes:
```Is integer overflow defined (for instance, as being mod 2^size)? Can I
reliably say that -long.min == 0L?
```
Sep 01 2011
Timon Gehr <timon.gehr gmx.ch> writes:
```On 09/01/2011 06:20 PM, Sean Eskapp wrote:
Is integer overflow defined (for instance, as being mod 2^size)?

I am quite sure that all operations are defined as operations on two's
complement integers, which would mean overflow is defined, but I cannot
find the respective part of the specification...

Can I reliably say that -long.min == 0L?

Well no, -long.min == long.min .

according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)
```
Sep 01 2011
Sean Eskapp <eatingstaples gmail.com> writes:
```== Quote from Timon Gehr (timon.gehr gmx.ch)'s article
On 09/01/2011 06:20 PM, Sean Eskapp wrote:
Is integer overflow defined (for instance, as being mod 2^size)?

I am quite sure that all operations are defined as operations on two's
complement integers, which would mean overflow is defined, but I cannot
find the respective part of the specification...
> Can I reliably say that -long.min == 0L?
Well no, -long.min == long.min .
according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)

Ah, good points, thanks!
```
Sep 01 2011
bearophile <bearophileHUGS lycos.com> writes:
```Timon Gehr:

according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)

Uhmmmm.

Bye,
bearophile
```
Sep 01 2011
Timon Gehr <timon.gehr gmx.ch> writes:
```On 09/02/2011 02:45 AM, bearophile wrote:
Timon Gehr:

according to TDPL p53., that fact is defined. (unary minus: -x == ~x+1)

Uhmmmm.

Bye,
bearophile

For unsigned integers it is clearly defined:

1000... => 0111... => 1000...

And according to TDPL p53: "This manipulation does not raise particular
questions about the signedness of val".

So, it is guaranteed that it will work for long.min .
```
Sep 02 2011