十六进制常数

2023-12-03

我想根据其十六进制表示形式声明一个整数参数。两者有什么区别:

INTEGER(kind=int32), PARAMETER :: a = Z'FFFFFFFF'
INTEGER(kind=int32), PARAMETER :: b = int(Z'FFFFFFFF', kind=int32)
INTEGER(kind=int32), PARAMETER :: c = transfer(Z'FFFFFFFF', 1_int32)

(是的,我知道这只是-1.)

gfortran似乎在编译期间给了我一个整数溢出错误(有助于告诉我我可以忽略它-fno-range-check)对于上述a and b,但不适用于 c。

我需要使其符合 Fortran 2003,因为此代码可能会在其他地方使用不同的编译器进行编译。


第一个和第三个语句不是有效的 Fortran。 boz 文字常量只能出现在许多有限的上下文中 - int 内在函数就是这些上下文之一。

中间语句根据 boz-literal-constant 指定的位序列将命名常量的值设置为与处理器相关的值。该值取决于处理器,因为结果值中的最高有效位是 1。

使用 Fortran 2008 规则进行详细阐述(正如 Vladimir 指出的那样,Fortran 2003 是不同的):

  • boz 文字常量指定 32 个 1(或 on/.TRUE./whatever)位的序列。
  • INTEGER(INT32) 指定 STORAGE_SIZE 为 32 位的整数,该整数可能大于或等于该类型对象的 BIT_SIZE(由于对齐要求等原因,存储位和“值位”可能不同)。
  • If necessary, the INT intrinsic truncates the bit sequence to the relevant bit size.
    • 如果该截断序列的最左边位为零,则 INT 内在函数的值由以下公式给出SUM([b(i) * (i-1)**2, i = 1, SIZE(b)])其中b是表示位序列的数组,最右边的位在b(1)中。
    • 如果该截断序列的最右边的位是 1(如示例所示),则标准表示结果取决于处理器。这是为了适应使用值的内部表示中的最高有效位来表示符号的典型做法。使用非常常见的整数补码表示法,您将得到 -1 值。

在 Fortran 2003 下,使用处理器上可用的最大整数表示形式将位序列解释为正数。结果值将超出 INTEGER(INT32) 对象的范围,从而使代码不合格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十六进制常数 的相关文章

  • 将派生类型中的指针分配给 Fortran 中相同类型中的目标

    我想在包含在同一派生类型中的派生类型中分配一个指针 下面的代码给了我下面的错误 这是怎么回事 我该如何解决这个问题 24 zoos i tigers 1 gt zoos i animals 1 1 1 Error Expected boun
  • Fortran 读取混合字符串和数字数据

    我在读取语句时遇到问题 我更喜欢 Fortran90 尽管如果有帮助的话其他版本也是可能的 我的文件中有一堆数据行 可以描述为 以空格分隔 没有固定的格式 包含一个字符串 后跟 7 个数字 字符串包含正斜杠 这是一个例子 maxele OS
  • 将数据写入列中的文件 (Fortran)

    我需要在 Fortran 90 中写入一些数据到文件中 我应该如何使用WRITE input将值分组为columns WRITE总是放一个new line每次通话后 这就是问题所在 代码示例 open unit 4 file generat
  • 使用命令行查找数据文件的行数

    有一种常规方法 逐行读取并检查iostat每次读数时都会达到非零或负值 不过 我想打电话system command 例行公事和 使用wc l命令来计算数量 然后想要分配要放置数据的数组的维度 例如 我以两种方式打印行数 Program T
  • Fortran 2003,选择类型以区分“实数”和“实数数组”

    我的问题是 可以select type用块来区分real realInput from real realArrayInput 很清楚如何select type可以用于区分派生类型 但对我来说不太清楚它如何 或是否 可以用于内在类型 在 M
  • FORTRAN 写()

    在开始之前 我必须先声明一下 我是 FORTRAN 的新手 我正在维护 1978 年的一段遗留代码 它的目的是从文件中读取一些数据值 处理这些值 然后将处理后的值输出到另一个文本文件 给出以下 FORTRAN 代码 INTEGER NM S
  • Fortran if stop 需要 endif 吗?

    在 fortran 90 中 if stop 语句是否需要结束 endif example if foo eq 1 stop do some stuff do some stuff 是循环的一部分还是 stop 意味着程序结束时 endif
  • 如何包装 fortran write 语句

    我想包装 fortran写语句 http software intel com sites products documentation doclib stdxe 2013 composerxe compiler fortran lin 在
  • 纯 Fortran 过程中的 I/O

    我正在尝试将错误检查合并到我正在编写的纯过程中 我想要这样的东西 pure real function func1 output unit a implicit none integer a output unit if a lt 0 th
  • 最佳 Fortran IDE [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 stackoverflow上有人用Fortran吗 您使用什么 IDE 您认为哪一个是最好的 似乎我周围的很多人都对 Intel Visu
  • 指定 gfortran 应该在其中查找模块的目录

    我目前基于模块来编译程序 例如主程序foo这取决于模块bar 如下 gfortran c bar f90 gfortran o foo exe foo f90 bar o 当foo f90 and bar f90位于同一目录中 如何指定 g
  • 有没有一种简单的方法来准备 Fortran 代码以进行并行调用

    我想使用 OpenMP 在 C 程序中并行求解多个大型 ODE 系统 由于某些原因 我需要使用 ODE 求解器 但我只能找到 Fortran 90 子例程 而且代码太大 无法简单地将其转换为 C 我知道 Fortran 广泛使用静态内存 因
  • 使用 Fortran 进行数组问题的二分查找

    我正在使用 Schaum 的 Fortran 77 编程概要 一书 其中有一个关于使用括号值组方法进行二分搜索的示例 首先这是代码 INTEGER X 100 INTEGER RANGE INTEGER START FINISH PRINT
  • Fortran的性能

    Fortran 的表现计算机语言基准游戏 http shootout alioth debian org 出奇的糟糕 今天的结果显示 Fortran 在两项四核测试中分别排名第 14 和第 11 在单核测试中排名第 7 和第 10 现在 我
  • MPI_Type_Create_Hindexed_Block 生成派生数据类型的错误范围

    使用Fortran 我尝试为动态分配的结构构建派生数据类型 但它得到了新类型的错误范围 代码如下 PROGRAM MAIN IMPLICIT NONE INCLUDE mpif h INTEGER I INTEGER MYID NUMPRO
  • Fortran 意图(inout)与省略意图

    良好的实践表明 Fortran 中的子例程参数每个都应具有指定的意图 即intent in intent out or intent inout 如上所述这个问题 https stackoverflow com questions 1011
  • Fortran 正在读取超出结束文件记录的内容

    我正在尝试从文件中读取一些数据 而结束文件记录检测对于停止读取非常重要 但是 根据用于读取数据的数组的数组维度 我无法正确检测结束文件记录 并且我的 Fortran 程序停止 程序如下 integer dimension 3 x line
  • 使用 Cygwin64 的 Fortran MPI

    我正在使用 Codeblock IDE 编写和编译我的 Fortran 程序 现在我想将 MPI 包含到我的 GNU Fortran 编译器中 在遵循 GNU GCC 编译器的一些指南之后 我突然想到我需要为 MPICH2 设置以下内容 有
  • 带有数字/标签的 Fortran IF 语句而不是另一个语句

    这段 Fortran 代码的含义是什么 IF J1 3 20 20 21 21 J1 J1 3 20 IF J2 3 22 22 23 23 J2 J2 3 22 CONTINUE 我在旧项目中看到过 我不知道这个带有数字 标签 的 IF
  • Fortran 子例程返回错误值

    嘿 我正在开发一个 Fortran 程序 遇到了一个奇怪的问题 当我尝试在调用特定子例程之前直接输出数组的某些值时 我得到了正确的值 然后 我尝试在启动子例程时输出同一数组的一些值 它们都是 0 我最终在子例程之后输出数组的值 并且这些值回

随机推荐

  • 访问动态分配数组的越界元素/无 SegFault

    我正在用 C 语言开发一个程序 它使用链表数组 原始哈希表 作为数据类型来表示某些日期信息 该数组有 12 个元素 对应于一年中的月份 每个月都有一个包含数据节点的链表 我开发了使用这种数据类型的模块 并且运行良好 后来我发现我正在访问越界
  • GCM 演示服务器向设备发送消息引发 401 错误

    与许多其他 java 和 android 新手一样 我尝试在 Windows 上运行 gcm 演示服务器和 gcm 演示客户端 使用 eclipse 运行虚拟设备 使用 tomcat 作为网络服务器 我在注册和取消注册设备方面没有任何问题
  • objectAtIndexedSubscript 在 IOS5 中可用吗?

    文档称它在 MacOS 1 08 中可用 那么故事是怎样的呢 iOS5呢 这是一个非常重要的选择器 因为 self 5 实际上会变成 self objectAtIndexedSubscript 5 除非我遗漏了一些东西 在 NSOrdere
  • 如何使用初始值设定项列表构造 std::array 对象? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用初始化器列表初始化成员数组 您可以使用初始值设定项列表构造 std array std array
  • UIDatePicker 设置最大日期

    我使用此代码来阻止用户超出我设置的限制 在视图中确实加载了 NSDate Date NSDate date DatePickerForDate setMinimumDate Date DatePickerForDate setMaximum
  • JavaScript forEach 回调

    我正在深入研究 Javascript 回调之类的东西 我遇到了 forEach 函数 函数说明了一切 循环遍历列表中的每个对象 当我查看文档我看到以下语法 arr forEach callback thisArg 并且文档中还提到了参数 c
  • I18N 基本设计规范

    我是 RSpec 的新手 正在尝试编写一个简单的测试来显示 Devise 正在工作 我选择了一个随机页面 并想要编写一个测试来显示未登录的用户被重新重定向到 users sign in describe OrgsController do
  • 如何在 Python 中生成动态(参数化)单元测试?

    我有某种测试数据 想为每个项目创建一个单元测试 我的第一个想法是这样做 import unittest l foo a a bar a b lee b b class TestSequence unittest TestCase def t
  • R,选择降雨事件并根据时间序列数据计算降雨事件总数

    这是我试图让代码执行的操作 识别数据集中独特的降雨 事件 我想从赛事之间的 6 小时禁赛期开始 我的攻击计划是创建一个列 其中包含事件的独特 标志 事件标志或 ID 可以是事件的开始时间戳或只是 n 1 最后一个标识符 1 1 1 1 2
  • SpriteKit 缺少线性变换矩阵

    有谁知道如何改造 rotate scale skew 使用变换矩阵的 SpriteKit 节点 在 Spritekit API 中找不到对此的任何支持 正如所提到的雾大师 您可以将 SKEffectNode 与 CIFilter 一起使用
  • QGLWidget 在 Windows 7 中显示为黑色

    我使用 Visual Studio 2010 在 Windows XP Qt 4 7 2 中编写并测试了一些代码 然后在另一台安装了 Windows 7 的计算机上进行了尝试 该程序打开一个 QDialog 并创建一个 QGLWidget
  • 如何在 JavaScript 中获取日期时间?

    如何在 JavaScript 中获取格式为 31 12 2010 03 55 AM 的日期时间 从语义上讲 您可能正在寻找一句话 new Date toLocaleString 它格式化用户区域设置中的日期 如果您确实正在寻找格式化日期的特
  • 更改php中的日期时间格式

    这是格式 d m Y H i s 15 11 2008 7 16 09 我想更改为这种格式 Y m d H i s 2008 11 15 07 16 09 尝试了 strtotime 函数 但它将 m 视为 d 将 d 视为 m 帮助 ph
  • VBA For循环不退出

    我正在循环遍历表的行并在不满足某些条件时删除行 由于某种原因 我的 for 循环即使完成也不会退出 我究竟做错了什么 lastr Range a2 End xlDown Row For r 2 To lastr If Cells r 1 V
  • 如何在 Windows 上强制 printf 输出 [-]inf 或 [-]infinity?

    C99标准说 表示无穷大的双参数被转换为以下之一 styles inf 或 infinity 实现的样式是 实现定义的 第 278 页第 7 19 6 1 节 不幸的是在 Windows 上 printf f n 1 0f 0 0f 产生
  • 如何断言 Iterable 包含具有特定属性的元素?

    假设我想使用以下签名对方法进行单元测试 List
  • 无法通过 Java 6 中的 jconsole 连接到 Tomcat MBean 服务器

    我用的是vista机器 我使用以下选项启动了 tomcat 5 5 27 CATALINA OPTS Dcom sun management jmxremote port 9003 Dcom sun management jmxremote
  • 媒体播放器混响不起作用

    我试图通过在输出混合 音频会话 0 上创建混响来将混响效果应用于媒体播放器 并且我使用此代码 public void reverb1 View v PresetReverb mReverb new PresetReverb 0 0 lt l
  • 在 Node.js 中找不到模块

    我有以下目录结构 app test server js app js 我尝试调用 app js 中从 server js 导出的函数 我这样做 var server require test server 但得到错误 Error Canno
  • 十六进制常数

    我想根据其十六进制表示形式声明一个整数参数 两者有什么区别 INTEGER kind int32 PARAMETER a Z FFFFFFFF INTEGER kind int32 PARAMETER b int Z FFFFFFFF ki