我问了一个有关转换COMP字段的问题,但没有得到任何答案。
我希望堆栈溢出可以帮助我解决这个问题。
我成功地将COMP-3转换为十进制。我需要您的帮助,以任何高级编程语言(最好使用Java或c#.net)将解压缩的十进制数转换回COMP-3。
用压缩十进制-123表示为X‘123d’(最后一个ny
c,d或f是符号)。处理压缩十进制的最简单方法之一是简单地将字节转换为十六进制字符串(或根据需要反之亦然),然后使用常规字符串操作。这可能不是最有效的,但是很容易实现。
因此,将Integer(值)转换为压缩的十进制是大致步骤(注意:我尚未测试代码)
String sign = "c";
if (value < 0) {
sign = "d";
value = -1 * value;
}
String val = value + "d"
byte[] comp3Bytes = new BigInteger(val, 16).toByteArray();
以下是一些与comp3相互转换的示例代码,要从字节数组中检索压缩的十进制,请参见http://record-
editor.svn.sourceforge.net/viewvc/record-
editor/Source/JRecord/src中的
getMainframePackedDecimal方法/net/sf/JRecord/Common/Conversion.java?revision=3&view=markup
并设置打包的十进制,请参见http://record-editor.svn.sourceforge.net/viewvc/record-
editor/Source/JRecord/src/net/sf/JRecord/Types/TypePackedDecimal.java?revision=3&view中的
setField =标记
这两个例程均采用字节数组,起始位置和字段位置的长度。
在网络上还有其他执行此操作的示例(我认为JRanch也具有执行转换的代码),进行一些谷歌搜索。
问题内容: 新来的! 情况:我正在一个需要与AS / 400服务器通信的项目中。我的任务是基本上处理将发送到AS / 400服务器的请求。为此,所有用户输入都应以EDCDIC字节为单位。 问题: 我已经设法通过以下代码将打包的小数转换为String,该代码可在该论坛上找到: 我现在的问题是我必须再次将这些字符串值转换为EBCDIC字节,以便AS / 400服务器可以理解它。我打算做一些事情,例如使
本文向大家介绍如何将十六进制转换为十进制?,包括了如何将十六进制转换为十进制?的使用技巧和注意事项,需要的朋友参考一下 而十六进制数是具有值是16的数字系统中的一个并且它具有唯一的16个码元:0,1,2,3,4,5,6,7,8,9和A,B,C,d,E ,其中A,B,C,D,E和F分别是十进制值10、11、12、13、14和15的单位表示。而十进制系统是最熟悉的号码系统向公众开放。它是10的基数,只
本文向大家介绍如何将十进制转换为十六进制?,包括了如何将十进制转换为十六进制?的使用技巧和注意事项,需要的朋友参考一下 十进制是公众最熟悉的数字系统。它是基数10,只有10个符号-0、1、2、3、4、5、6、7、8和9。而十六进制是计算机或数字系统中最常见的数字系统颜色表示。它是基数16,只有16个符号:0、1、2、3、4、5、6、7、8、9和A,B,C,D,E,F。这些A,B,C,D ,E,F分
我有一个用例,需要为大型机创建一个文件,其中包含文本和使用Java压缩的十进制数。 我在Stack Overflow上经历了很多线程,但似乎没有任何工作。我正在使用JTOpen库。 下面是我写的一个示例程序: 当我编写文件并立即读取时,它在Java中似乎运行良好。我能够正确地看到输出。 然而,当在大型机中打开同一个文件时,我无法正确地看到压缩的十进制数据。 以下是我如何看待大型机中的数据: 我几乎
我有一个巨大的大型机文件,在那个文件中有一些打包的数字。我想知道如何使用Java解包以下数字? 有人能告诉我的程序是否正确吗?
问题内容: 如何在JavaScript中将十进制值转换为等效的十六进制值? 问题答案: 使用以下命令将数字转换为十六进制字符串: 并通过以下步骤逆向处理: