如何在嵌入符号的情况下解码数字数据类型?

佩斯克

我有使用称为“ Sign Embedded”的数据类型以该格式存储的数据

嵌入式标牌

此数据类似于数字字符数据,但是,符号将嵌入在该字段的最右边字节中。

就是HELP这样,但是我不知道如何将其转换为普通的数字字符数据

我这里有一些这些数据的例子

2698388x = -26983888
1665289w = -16652897
19200p = -192000
72119v = -721196

这是按位操作...我想,但是我不知道确切的算法。

如果有人可以帮助我解决这个问题,我将不胜感激:)

ps。此数据是由COBOL程序生成的(尽管....没关系)

布鲁斯·马丁(Bruce Martin)

这是某些Ascii Cobol编译器(Fujitsu,GNU-Cobol等)使用分区十进制格式。

在最近的答案中,我为大型机和PC cobol编译器提供了Java代码。

基本上最后一位是符号

          character     values       Hex
positive   @A => I     +0 => +9   40 => 49 
negative   PQ => Y     -0 => -9   50 => 59 or is it 70 => 79 (lower case)
unsigned   01 => 9      0 =>  9   30 => 39

最后或最低四位(4位)始终给出十进制值,第一或最高四位给出正负号。

我不确定负数是否用大写或小写字母表示,是否需要测试。

一些编译器可能未使用正值。


此外,在Cobol的区位十进制的小数点不是存储,假定

 if the Cobol Copybook is

     03 fld                 pic s99999.

 121 is stored as     0012A 

 if the Cobol Copybook is (no sign)

     03 fld                 pic 99999.

 121 is stored as     00121 

 but if the copybook is (v stands for assumed decimal point) 

    03 fld                  pic s999v99.

 then 123 is stored as 1230@  

所以你必须COBOL字帖; 最好Cobol中解码或使用商业软件包。

大多数开源Cobol接口软件包都集中在大型机EBCDIC Cobol上。如果java是一个选项

  • JRecord可以处理格式(您需要指定PC方言Fujitsu或OpenCobol之一)。它还有一个示例程序Cobol2Csv从Cobol转换为Csv。程序Cobol2Csv尚未准备就绪。

注意:我是JRecord的作者。


要解码该号码,代码可能是

lastDigit = uppercase(lastDigit);

switch (lastDigit) {
   case 'A' -> 'I': sign = '';  lastDigit = lastDigit - 'A' + '0'; break;
   case 'P' -> 'Y': sign = '-'; lastDigit = lastDigit - 'P' + '0'; break;
   case '0' -> '9': sign = '';
}

或者

digit = digit & x'0f';

对于ebcdic或ascii数字/带小数的十进制,始终将字符转换为0到10范围内的数字

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不使用求和类型或副本的情况下创建异构数据类型的列表

来自分类Dev

MATLAB:如何在给定数字数组的情况下评估符号函数,并返回结果数组?

来自分类Dev

如何在不丢失Mysql中的数据的情况下更改列数据类型

来自分类Dev

如何在不删除依赖项的情况下更改数据类型

来自分类Dev

Matlab:如何在不扩展基础数据类型的情况下执行定点运算?

来自分类Dev

Matlab:如何在不扩展基础数据类型的情况下执行定点算术?

来自分类Dev

如何在不丢失数据类型的情况下读取 xlsx 文件

来自分类Dev

mcrypt解码数据类型

来自分类Dev

如何在不使用任何用户定义的数据类型的情况下,用C或C ++构建大小为n的全新数据类型?

来自分类Dev

如何在不使用任何用户定义的数据类型的情况下,在C或C ++中构建大小为n的全新数据类型?

来自分类Dev

如何在没有数据类型的情况下从DataFrame打印字符串值

来自分类Dev

如何在列数据类型为NON INTEGER的情况下添加NOT NULL约束(例如VARCHAR(50))

来自分类Dev

Apex Set:如何在不知道数据类型的情况下迭代一个集合?

来自分类Dev

如何在JavaScript中验证数字数据类型的长度?

来自分类Dev

在var的情况下分配特定数据类型

来自分类Dev

SqlDataReader用于数字数据类型

来自分类Dev

该程序如何在不知道其数据类型的情况下接受数据?

来自分类Dev

如何在不使用乘法(*)符号的情况下将十进制数字相乘

来自分类Dev

如何在不使用乘法(*)符号的情况下将十进制数字相乘

来自分类Dev

如何在不丢失数据的情况下更改数据类型并添加带有迁移的列?(laravel 5.3)

来自分类Dev

使用Laravel Migration,如何在不使用原始SQL查询的情况下更改列的数据类型并更新其现有数据以适应新的数据类型?

来自分类Dev

在苗条的情况下,如何在脚本顶部嵌入样式?

来自分类Dev

如何对数字和非数字数据类型进行分组汇总

来自分类Dev

如何在不转换为C#中的字节的情况下使用udp发送套接字数据

来自分类Dev

如何在JSON-LD中为RDF值编码数据类型IRI?

来自分类Dev

如何在不事先知道文件类型的情况下将base64解码为文件?

来自分类Dev

在类型运算符存在的情况下实现嵌套/递归数据类型

来自分类Dev

如何将文本值转换为Access数字数据类型

来自分类Dev

如何使用 SQL SELECT 将数字数据类型分配给新列

Related 相关文章

  1. 1

    如何在不使用求和类型或副本的情况下创建异构数据类型的列表

  2. 2

    MATLAB:如何在给定数字数组的情况下评估符号函数,并返回结果数组?

  3. 3

    如何在不丢失Mysql中的数据的情况下更改列数据类型

  4. 4

    如何在不删除依赖项的情况下更改数据类型

  5. 5

    Matlab:如何在不扩展基础数据类型的情况下执行定点运算?

  6. 6

    Matlab:如何在不扩展基础数据类型的情况下执行定点算术?

  7. 7

    如何在不丢失数据类型的情况下读取 xlsx 文件

  8. 8

    mcrypt解码数据类型

  9. 9

    如何在不使用任何用户定义的数据类型的情况下,用C或C ++构建大小为n的全新数据类型?

  10. 10

    如何在不使用任何用户定义的数据类型的情况下,在C或C ++中构建大小为n的全新数据类型?

  11. 11

    如何在没有数据类型的情况下从DataFrame打印字符串值

  12. 12

    如何在列数据类型为NON INTEGER的情况下添加NOT NULL约束(例如VARCHAR(50))

  13. 13

    Apex Set:如何在不知道数据类型的情况下迭代一个集合?

  14. 14

    如何在JavaScript中验证数字数据类型的长度?

  15. 15

    在var的情况下分配特定数据类型

  16. 16

    SqlDataReader用于数字数据类型

  17. 17

    该程序如何在不知道其数据类型的情况下接受数据?

  18. 18

    如何在不使用乘法(*)符号的情况下将十进制数字相乘

  19. 19

    如何在不使用乘法(*)符号的情况下将十进制数字相乘

  20. 20

    如何在不丢失数据的情况下更改数据类型并添加带有迁移的列?(laravel 5.3)

  21. 21

    使用Laravel Migration,如何在不使用原始SQL查询的情况下更改列的数据类型并更新其现有数据以适应新的数据类型?

  22. 22

    在苗条的情况下,如何在脚本顶部嵌入样式?

  23. 23

    如何对数字和非数字数据类型进行分组汇总

  24. 24

    如何在不转换为C#中的字节的情况下使用udp发送套接字数据

  25. 25

    如何在JSON-LD中为RDF值编码数据类型IRI?

  26. 26

    如何在不事先知道文件类型的情况下将base64解码为文件?

  27. 27

    在类型运算符存在的情况下实现嵌套/递归数据类型

  28. 28

    如何将文本值转换为Access数字数据类型

  29. 29

    如何使用 SQL SELECT 将数字数据类型分配给新列

热门标签

归档