我在下面的链接中为java How to unpack COMP-3 digits using Java?使用了解包数据逻辑,但是对于源代码中的空数据,它会返回404040404,就像Java解包代码一样。我知道这是ebcdic中的空格,但是如何通过处理这个空格来解包或者避免它。
发布于 2019-04-05 04:58:39
我们必须处理两个问题。首先,数据是有效的comp-3数据,其次,自从提到Comp-3以来,像COBOL这样的旧语言实现认为数据是“有效的”。
如果offests没有错位,那么现有程序似乎将空格解释为0而不是空格。这可能是不正确的,但可能是被设计为容忍这种不良行为的旧程序的产物。
我在遗留商店中采取的方法(假设没有错位)是将“space”(即0x404040404040的序列)视为零。这将是一个旧的检查,将该字段与空格进行比较,然后假设0x00000000000f为实际默认值。这是单个商店必须确定的事情,并不被认为是一种通用的编程方法。
就Java而言,人们必须记住字节是“有符号的”,因此根据代码的编写方式进行比较可能会很棘手。我记得在java中唯一的“无符号”数据类型是char,它实际上是两个字节(单元16)。
与其说这是一个编程问题,不如说它认识到了历史的容忍和补救。
https://stackoverflow.com/questions/55455330
复制相似问题