首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EBCDIC用Java解包comp-3数据返回40404**

EBCDIC用Java解包comp-3数据返回40404**
EN

Stack Overflow用户
提问于 2019-04-01 20:38:35
回答 1查看 271关注 0票数 0

我在下面的链接中为java How to unpack COMP-3 digits using Java?使用了解包数据逻辑,但是对于源代码中的空数据,它会返回404040404,就像Java解包代码一样。我知道这是ebcdic中的空格,但是如何通过处理这个空格来解包或者避免它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-05 04:58:39

我们必须处理两个问题。首先,数据是有效的comp-3数据,其次,自从提到Comp-3以来,像COBOL这样的旧语言实现认为数据是“有效的”。

如果offests没有错位,那么现有程序似乎将空格解释为0而不是空格。这可能是不正确的,但可能是被设计为容忍这种不良行为的旧程序的产物。

我在遗留商店中采取的方法(假设没有错位)是将“space”(即0x404040404040的序列)视为零。这将是一个旧的检查,将该字段与空格进行比较,然后假设0x00000000000f为实际默认值。这是单个商店必须确定的事情,并不被认为是一种通用的编程方法。

就Java而言,人们必须记住字节是“有符号的”,因此根据代码的编写方式进行比较可能会很棘手。我记得在java中唯一的“无符号”数据类型是char,它实际上是两个字节(单元16)。

与其说这是一个编程问题,不如说它认识到了历史的容忍和补救。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55455330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档