f95 allows a Boolean constant (octal, hexadecimal, or Hollerith) in the following alternate forms (no binary). Variables cannot be declared Boolean. Standard Fortran does not allow these forms.
ddddddB, where d is any octal digit
You can use the letter B or b.
There can be 1 to 11 octal digits (0 through 7).
11 octal digits represent a full 32-bit word, with the leftmost digit allowed to be 0, 1, 2, or 3.
Each octal digit specifies three bit values.
The last (right most) digit specifies the content of the right most three bit positions (bits 29, 30, and 31).
If less than 11 digits are present, the value is right-justified—it represents the right most bits of a word: bits n through 31. The other bits are 0.
Blanks are ignored.
Within an I/O format specification, the letter B indicates binary digits; elsewhere it indicates octal digits.
X’ddd’ or X"ddd", where d is any hexadecimal digit
There can be 1 to 8 hexadecimal digits (0 through 9, A-F).
Any of the letters can be uppercase or lowercase (X, x, A-F, a-f).
The digits must be enclosed in either apostrophes or quotes.
Blanks are ignored.
The hexadecimal digits may be preceded by a + or - sign.
8 hexadecimal digits represent a full 32-bit word and the binary equivalents correspond to the contents of each bit position in the 32-bit word.
If less than 8 digits are present, the value is right-justified—it represents the right most bits of a word: bits n through 31. The other bits are 0.
Accepted forms for Hollerith data are:
nH… |
’…’H |
"…"H |
nL… |
’…’L |
"…"L |
nR… |
’…’R |
"…"R |
Above, “…” is a string of characters and n is the character count.
If any character constant is in a bitwise logical expression, the expression is evaluated as Hollerith.
A Hollerith constant can have 1 to 4 characters.
Examples: Octal and hexadecimal constants.
Boolean Constant |
Internal Octal for 32-bit Word |
---|---|
0B |
00000000000 |
77740B |
00000077740 |
X"ABE" |
00000005276 |
X"-340" |
37777776300 |
X’1 2 3’ |
00000000443 |
X’FFFFFFFFFFFFFFFF’ |
37777777777 |
Examples: Octal and hexadecimal in assignment statements.
i = 1357B j = X"28FF" k = X’-5A’ |
Use of an octal or hexadecimal constant in an arithmetic expression can produce undefined results and do not generate syntax errors.