f95 允许使用以下替代格式(没有二进制)的布尔常量(八进制、十六进制或霍尔瑞斯)。不能将变量声明为布尔型。标准 Fortran 不允许使用这些格式。
可以使用字母 B 或 b。
可以是 1 至 11 个八进制数字(0 至 7)。
11 个八进制数字表示完整的 32 位字,最左侧的数字可以是 0、1、2 或 3。
每个八进制数字指定 3 位的值。
最后一个(最右侧的)数字指定最右侧 3 位(位 29、30 和 31)的内容。
如果位数不足 11 个,则该值右对齐,即它表示字最右侧的位:位 n 至 31。其他位均为 0。
忽略空格。
在 I/O 格式规范中,字母 B 表示二进制数字;而在其他地方则表示八进制数字。
X'ddd' 或 X"ddd",其中 d 是任意十六进制数字
可以包含 1 至 8 个十六进制数字(0 至 9,A-F)。
任何字母都可以是大写或小写字母(X、x、A-F、a-f)。
数字必须用撇号或引号括起来。
忽略空格。
十六进制数字可以以 + 或 - 符号开头。
8 个十六进制数字表示一个完整的 32 位字,等效的二进制数字对应于 32 位字中每个位的内容。
如果位数不足 8 个,则该值右对齐,即它表示字最右侧的位:位 n 至 31。其他位均为 0。
接受的霍尔瑞斯数据格式为:
| 
 nH…  | 
 ’…’H  | 
 "…"H  | 
| 
 nL…  | 
 ’…’L  | 
 "…"L  | 
| 
 nR…  | 
 ’…’R  | 
 "…"R  | 
上面的 "…" 是字符串,n 是字符数。
示例:八进制和十六进制常量。
| 
 布尔常量  | 
 32 位字的内部八进制数  | 
|---|---|
| 
 0B  | 
 00000000000  | 
| 
 77740B  | 
 00000077740  | 
| 
 X"ABE"  | 
 00000005276  | 
| 
 X"-340"  | 
 37777776300  | 
| 
 X’1 2 3’  | 
 00000000443  | 
| 
 X’FFFFFFFFFFFFFFFF’  | 
 37777777777  | 
示例:赋值语句中的八进制和十六进制数。
i = 1357B j = X"28FF" k = X’-5A’  | 
在算术表达式中使用八进制或十六进制常量可产生未定义的结果,并且不会生成语法错误。