提问人:William Pursell 提问时间:8/31/2012 更新时间:9/2/2012 访问量:136
.or 的旧代码用法
legacy code uses of .or
问:
在较旧的 fortran 代码中,当与两个整数类型一起使用时,结果是按位的还是操作数的还是 0/1?.or.
我正在更新旧代码,并相信我应该用 替换这些实例,但不确定这是否是旧代码中的预期结果。我应该将结果设置为 0 还是 1?.or.
IOR
答:
6赞
D.Shawley
8/31/2012
#1
我相信你所看到的确实是一个自定义扩展。我以前没有看到过这个在使用,但我确实在网上找到了关于野外实际存在的此类东西的参考资料:
当 Fortran 程序直接与数字硬件通信时,可能需要对位模式执行按位逻辑运算。Standard Fortran 没有提供任何直接的方法,因为逻辑变量本质上只存储一位信息,而整数变量只能用于算术。作为扩展,许多系统提供内部函数来对整数执行按位运算。函数名称各不相同:通常为 IAND、IOR、ISHIFT。一些系统允许将普通的逻辑运算符(如 .AND. 和 .OR.)与整数参数一起使用:这是一个更激进的扩展,但更不令人满意,不仅因为它降低了可移植性,而且还降低了编译器检测普通算术表达式中错误的能力。
评论
0赞
aka.nice
9/1/2012
我希望我没有了解这个丑陋的扩展,但这次挖掘+1
1赞
IanH
9/2/2012
#2
具有 DEC/VMS 链接或传统的编译器支持将允许整数参数扩展为 .OR。(和其他逻辑运算符)。该组编译器定义 .OR。对整数的运算是位明智的。
目前支持的具有该传统的编译器是 Intel Fortran(通过 Compaq Fortran、Digital Fortran 等)。
评论
0赞
Vladimir F Героям слава
9/3/2012
是的,该讨论 comp.lang.fortran 还提到它可以在 IBM XL Fortran 中启用。
上一个:在没有临时文件的情况下恢复陷阱
下一个:初始化值为 -2**31 的整数
评论