【问题标题】:Hex QString to hex qByteArray十六进制 QString 到十六进制 qByteArray
【发布时间】:2014-08-24 10:14:58
【问题描述】:

我正在尝试为 Blackberry OS10 实现 OTP 生成器。我已经使用了Android端的参考实现,你可以找到它here

所以我想将其转换为 C++/QNX 代码,而我在十六进制转换时遇到了一些麻烦...

在java中:

private static byte[] hexStr2Bytes(String hex){
     // Adding one byte to get the right conversion
     // Values starting with "0" can be converted
     byte[] bArray = new BigInteger("10" + hex,16).toByteArray();

     // Copy all the REAL bytes, not the "first"
     byte[] ret = new byte[bArray.length - 1];
     for (int i = 0; i < ret.length; i++)
         ret[i] = bArray[i+1];
     return ret;
 }

在 QNX 中:

QByteArray msg = QByteArray::fromHex(m.toLocal8Bit());

问题是“m”以 '00' 开头,所以我的最终 msg 数组长度为 0...

例如我尝试编码十六进制 qstring:0000000002ca4e32

在黑莓中:m=""

在 Android 中:m="?M?"

那么你能解释一下如何处理这样的转换吗?

谢谢!

【问题讨论】:

    标签: android blackberry hex qstring qbytearray


    【解决方案1】:

    我要做的是将您的 Java 函数转换为纯 C++,即不是 QT 格式。然后将数据类型适配到 QT。

    【讨论】:

      猜你喜欢
      • 2013-10-16
      • 2011-12-09
      • 2018-07-26
      • 2011-06-01
      • 2011-02-27
      • 2016-01-05
      • 2023-03-14
      • 2014-02-24
      • 2014-05-08
      相关资源
      最近更新 更多