Java OSS Nokalva中的Tbcd支持

Java OSS Nokalva中的Tbcd支持,java,asn.1,Java,Asn.1,正如我所看到的,OSS Nokalva Java api支持BCD编码(ByteTool类有toBCD和parseBCD方法),但不支持TBCD。有人知道怎么处理吗? 或者有人知道如何在Java中实现从字符串到TBCD编码字节数组的转换,反之亦然? 提前谢谢。我会自己回答的。为了实现字符串格式十进制数的TBCD编码和解码,我采用了以下方法: 此方法反转字节的上下4位 private byte reverseByte(byte bInput){ return (byte) ((byte)((

正如我所看到的,OSS Nokalva Java api支持BCD编码(ByteTool类有toBCD和parseBCD方法),但不支持TBCD。有人知道怎么处理吗? 或者有人知道如何在Java中实现从字符串到TBCD编码字节数组的转换,反之亦然?
提前谢谢。

我会自己回答的。为了实现字符串格式十进制数的TBCD编码和解码,我采用了以下方法:

此方法反转字节的上下4位

private byte reverseByte(byte bInput){
   return (byte) ((byte)((bInput & (byte)0x0f)<<4) + (byte)((bInput &(byte)0xf0)>>>4)&0x0f));
}
专用字节反向字节(字节bInput){
返回(byte)((byte)((bInput和(byte)0x0f)>4)和0x0f));
}
方法,该方法接受输入十进制字符串并返回TBCD编码的字节数组。此方法使用从OSS Nokalva java api的ByteTool类解析的方法

public static byte[] parseTBCD(String input){
byte[] tbcd = ByteTool.parseBCD(input);
for(int i=0; i<tbcd.length; i++) tbcd[i] = reverseByte(tbcd[i]);
return tbcd;
}
publicstaticbyte[]parseTBCD(字符串输入){
字节[]tbcd=ByteTool.parseBCD(输入);

对于(int i=0;i我将回答我自己。为了实现字符串格式的十进制数的TBCD编码和解码,我采用了以下方法:

此方法反转字节的上下4位

private byte reverseByte(byte bInput){
   return (byte) ((byte)((bInput & (byte)0x0f)<<4) + (byte)((bInput &(byte)0xf0)>>>4)&0x0f));
}
专用字节反向字节(字节bInput){
返回(byte)((byte)((bInput和(byte)0x0f)>4)和0x0f));
}
方法,该方法接受输入的十进制字符串并返回TBCD编码的字节数组。此方法使用从OSS Nokalva java api的ByteTool类解析的方法

public static byte[] parseTBCD(String input){
byte[] tbcd = ByteTool.parseBCD(input);
for(int i=0; i<tbcd.length; i++) tbcd[i] = reverseByte(tbcd[i]);
return tbcd;
}
publicstaticbyte[]parseTBCD(字符串输入){
字节[]tbcd=ByteTool.parseBCD(输入);

对于(int i=0;iOSS Nokalva,他们的知识库中有一个关于TBCD的问题和答案。请看一个你可以下载处理TBCD的示例

请注意,前面的答案中有不正确的代码,该代码依赖于在一般情况下不适用于TBCD的现有ByteTool BCD方法。该代码将TBCD作为交换了半字节的BCD处理。当无效的BCD无效时,ByteTool BCD代码将对有效的TBCD抛出NumberFormatException。有关正确的代码,请参阅上面的URL处理TBCD


Paul

OSS Nokalva在他们的知识库中有一个关于TBCD的问题和答案。请看一个您可以下载的处理TBCD的示例

请注意,前面的答案中有不正确的代码,该代码依赖于在一般情况下不适用于TBCD的现有ByteTool BCD方法。该代码将TBCD作为交换了半字节的BCD处理。当无效的BCD无效时,ByteTool BCD代码将对有效的TBCD抛出NumberFormatException。有关正确的代码,请参阅上面的URL处理TBCD


Paul

谢谢Paul。我在OSS Nokalva网站上搜索TBCD,但在知识库中没有找到。谢谢Paul。我在OSS Nokalva网站上搜索TBCD,但在知识库中没有找到。