Data representation models

Integer bit model

The following model shows how the processor represents each bit of a nonnegative scalar integer object:

intbit

j
is the integer value
s
is the number of bits
wk
is binary digit w located at position k
IBM Extension

XL Fortran implements the following s parameters for the XL Fortran integer kind type parameters:

Integer Kind Parameter s Parameter
1 8
2 16
4 32
8 64
End of IBM Extension

The following intrinsic functions use this model:

  • BTEST
  • IAND
  • IBCLR
  • IBITS
  • IBSET
  • IEOR
  • IOR
  • ISHFT
  • ISHFTC
  • MVBITS
  • NOT

Integer data model

intdata
i
is the integer value
s
is the sign (±1)
q
is the number of digits (positive integer)
wk
is a nonnegative digit < r
r
is the radix
IBM Extension

XL Fortran implements this model with the following r and q parameters:

Integer Kind Parameter r Parameter q Parameter
1 2 7
2 2 15
4 2 31
8 2 63
End of IBM Extension

The following intrinsic functions use this model:

  • DIGITS
  • HUGE
  • RADIX
  • RANGE

Real data model

realdata
x
is the real value
s
is the sign (±1)
b
is an integer > 1
e
is an integer, where emin <= e <= emax
p
is an integer > 1
fk
is a nonnegative integer < b (f1 <> 0)
Note:
If x=0, then e=0 and all fk=0.
IBM Extension

XL Fortran implements this model with the following parameters:

Real Kind parameter b Parameter p Parameter emin Parameter emax Parameter
4 2 24 -125 128
8 2 53 -1021 1024
16 2 106 -1021 1024
End of IBM Extension

The following intrinsic functions use this model:

  • DIGITS
  • EPSILON
  • EXPONENT
  • FRACTION
  • HUGE
  • MAXEXPONENT
  • MINEXPONENT
  • NEAREST
  • PRECISION
  • RADIX
  • RANGE
  • RRSPACING
  • SCALE
  • SET_EXPONENT
  • SPACING
  • TINY