Division of large negative number leads to integer overflow
- From: "Arjen Markus" <arjen.markus@xxxxxxxxxx>
- Date: 1 Mar 2007 22:05:30 -0800
Hello,
the program below results in an integer overflow, when dividing k by
m:
! Check behaviour of -(huge+1)/-1
!
program chk
implicit none
integer :: k, m, s
m = -1
k = -huge(k)-1
write(*,*) 'Largest negative number: ',k
s = k/m
write(*,*) 'Divided by -1: ', s
s = k*m
write(*,*) 'Multiplied by -1: ', s
s = -k
write(*,*) 'Negated: ', s
end program
I checked this with two different compilers on Windows XP. Is this
behaviour prescribed
by the standard or is it machine-dependent?
Just curious - it is a corner case that I do not expect to pop up all
that often in practice,
but I heard of it yesterday (in a Java/C# context) and thought I'd try
it in Fortran.
Regards,
Arjen
.
- Follow-Ups:
- Re: Division of large negative number leads to integer overflow
- From: robert . corbett
- Re: Division of large negative number leads to integer overflow
- From: glen herrmannsfeldt
- Re: Division of large negative number leads to integer overflow
- From: Richard Maine
- Re: Division of large negative number leads to integer overflow
- Prev by Date: Re: Array size by module variables
- Next by Date: Re: Division of large negative number leads to integer overflow
- Previous by thread: Re: fortran 2003 compiler
- Next by thread: Re: Division of large negative number leads to integer overflow
- Index(es):