- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我定义了许多标志(由远远超出我控制范围的头文件),如下所示:
*
* OPTVAL field for IPV6_ADDR_PREFERENCES_FLAGS
*
01 IPV6-ADDR-PREFERENCES-FLAGS PIC X(4).
*
* IPV6_ADDR_PREFERENCES_FLAGS mappings
*
77 IPV6-PREFER-SRC-HOME PIC X(4) VALUE X'00000001'.
77 IPV6-PREFER-SRC-COA PIC X(4) VALUE X'00000002'.
77 IPV6-PREFER-SRC-TMP PIC X(4) VALUE X'00000004'.
77 IPV6-PREFER-SRC-PUBLIC PIC X(4) VALUE X'00000008'.
77 IPV6-PREFER-SRC-CGA PIC X(4) VALUE X'00000010'.
77 IPV6-PREFER-SRC-NONCGA PIC X(4) VALUE X'00000020'.
我需要对其中一些标志执行二进制或,我想知道是否有一种我不知道的简单方法可以做到这一点。是否有一个简单的关键字或语法可以使我的程序将这些标志视为二进制值并让我进行数学计算,或者这个头文件完全损坏了?
最佳答案
我认为这个库写得不好。如果您要编写一个供 COBOL 使用的低级库,您应该选择 COBOL 更容易操作的数据类型。在这种情况下,代表长字(S9(9) COMP)的 COMP 项对于 COBOL 来说会更容易处理。
假设您将这些值进行“或”运算以调用较低级别的库,则只需将它们加在一起即可获取标志值。这是可行的,因为每个常量都有一个位集。
您可以将常量移动到临时重定义区域,或者利用 COBOL 缺乏类型安全的优势并将它们传递给子程序进行操作。以下内容适用于 VMS COBOL:
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLEOR.
DATA DIVISION.
WORKING-STORAGE SECTION.
*
* OPTVAL field for IPV6_ADDR_PREFERENCES_FLAGS
*
01 IPV6-ADDR-PREFERENCES-FLAGS PIC X(4).
*
* IPV6_ADDR_PREFERENCES_FLAGS mappings
*
77 IPV6-PREFER-SRC-HOME PIC X(4) VALUE X'00000001'.
77 IPV6-PREFER-SRC-COA PIC X(4) VALUE X'00000002'.
77 IPV6-PREFER-SRC-TMP PIC X(4) VALUE X'00000004'.
77 IPV6-PREFER-SRC-PUBLIC PIC X(4) VALUE X'00000008'.
77 IPV6-PREFER-SRC-CGA PIC X(4) VALUE X'00000010'.
77 IPV6-PREFER-SRC-NONCGA PIC X(4) VALUE X'00000020'.
PROCEDURE DIVISION.
1.
CALL "BINARYOR"
USING IPV6-PREFER-SRC-HOME
IPV6-PREFER-SRC-COA
IPV6-ADDR-PREFERENCES-FLAGS.
CALL "BINARYOR"
USING IPV6-PREFER-SRC-PUBLIC
IPV6-ADDR-PREFERENCES-FLAGS
IPV6-ADDR-PREFERENCES-FLAGS.
IF IPV6-ADDR-PREFERENCES-FLAGS NOT = X'0000000B'
DISPLAY "Failure"
END-IF.
END PROGRAM SAMPLEOR.
IDENTIFICATION DIVISION.
PROGRAM-ID. BINARYOR.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
01 ARG1 PIC S9(9) COMP.
01 ARG2 PIC S9(9) COMP.
01 RESULT PIC S9(9) COMP.
PROCEDURE DIVISION USING ARG1 ARG2 RESULT.
1.
ADD ARG1 TO ARG2 GIVING RESULT.
END PROGRAM BINARYOR.
如果这不起作用,那么您需要研究 COBOL 平台的二进制项表示,以找出正确的类型。
我在 COBOL 中做了很多(可能太多了)较低级别的事情(几十年前)。通常,你可以解决它。但到了某个时候,它就变得太难了,不值得这么麻烦。在这一点上,调用一种更适合处理位的语言(如 C)是值得的。
关于binary - 在 COBOL 中与 Pic X 数据执行二进制 OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1045449/
我对以下树的术语感到困惑,我一直在研究树,但无法区分这些树: a) 完全二叉树 b) 严格二叉树 c) 完整二叉树 请帮我区分这些树。这些树何时何地在数据结构中使用? 最佳答案 完美的树:
我正在检查数字系统并在它们之间进行转换。 我认为十六进制值比二进制使用更少的位,这是有道理的,但最终十六进制值不是存储为位吗?这似乎最终打败了目的。 最佳答案 几乎在所有情况下,计算机使用的所有数据最
任何人都可以在 Cudd 包上指出一些好的 Material 吗?我在这里寻找一些简洁的事情。位于 http://vlsi.colorado.edu/~fabio/CUDD/ 的那个似乎没有对此事做出
我正在检查数字系统并在它们之间进行转换。 我认为十六进制值比二进制使用更少的位,这是有道理的,但最终十六进制值不是存储为位吗?这似乎最终打败了目的。 最佳答案 几乎在所有情况下,计算机使用的所有数据最
在我的应用程序中,我需要序列化一个包含任意数据类型的向量,在本例中是一个 Doubles 列表。为了序列化我正在导入 Data.Vector.Binary 的向量。 在 GHCi 中加载模块时出现以下
我尝试通过 sqlalchemy 将二进制文件存储到 postgresql 中,并从客户端上传文件。 对错误消息的一点谷歌把我带到 this source file :“包装的对象不是字节或缓冲区,这
我从表(源)中执行 INSERT SELECT,其中每列都是 VARCHAR 数据类型。 其中一列存储二进制数据,例如 '0003f80075177fe6' 我插入的目标表具有相同的列,但具有正确的数
无法简单地将二进制文件复制到 Linux 机器。哇!我今天觉得很蠢!以下是从默认镜像和 utah.edu 下载的二进制包的 tar.gz 中的文件列表: -rwxr-xr-x 1 ec2-user e
我正在阅读关于 Binary search 的不同 Material ,我不清楚它是一个贪婪的二进制文件(在我看来它不是)或者,它可以是一个具有某些特定实现的贪婪算法吗? 如果它可以是贪心的,它有什么
我见过这样写的代码: ifstream fin; fin.open("largefile.dat", ifstream::binary | ifstream::in); 现在这让我感到困惑,上面的代码
binary(10) vs char(10)character set binary有什么区别? 还有varbinary(10) vs varchar(10)字符集二进制? 它们在所有 MySQL 引
binary(10) vs char(10)character set binary有什么区别? 还有varbinary(10) vs varchar(10)字符集二进制? 它们在所有 MySQL 引
我尝试将一些数据插入到从 mysql 中的另一个表检索的表中,该表的数据类型为 BINARY(20)。 提取的数据位于变量$binary['hash']; /l÷ˆ8Ô]¿\µK prepare("I
在我的一个站点上,我有一个主用户表,其中包含每个用户的唯一用户 ID、电子邮件地址、密码等。 我需要开始跟踪很多与每个用户相关的二进制标志,比如他们是否确认了他们的电子邮件,他们是否发布了消息,他们是
在最近 SO discussion我展示了一个需要修剪顶点 6 和 7 的二叉分类树: 下面是我使用的代码: KaryTree[9, 2, VertexLabels -> {1 -> "Blood
请解释一下,对于以下查询,在 Mysql 中哪个会更快? SELECT * FROM `userstatus` where BINARY Name = 'Raja' [OR] SELECT * FRO
我通过定义 ngram_vectorizer = CountVectorizer(binary=True) 和 ngram_vectorizer = CountVectorizer(binary=Fa
在 C++ 中搜索文件读取示例时,我注意到许多示例使用 std::ios::binary 与 std::ifstream::binary std::ios::beg 与 your_file_strea
我在这里和其他论坛上看到过旧帖子,其代码与下面的代码类似,但无法弄清楚其中的一部分来自哪里。 let Source = Table.FromRows(Json.Document(Binary.
#include #include #define SIGBAD(signo) ((signo) = NSIG) int sigaddset(sigset_t *set, int signo
我是一名优秀的程序员,十分优秀!