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’ |
在算术表达式中使用八进制或十六进制常量可产生未定义的结果,并且不会生成语法错误。