将字节转换为两位十六进制数字
Converting bytes into two-digit, hexadecimal numbers
testRead = testRead.toHex();
std::vector<int> testHexSet;
for(int i = 1; i != testRead.length() + 1; i = i + 2) {
int iValue = ((int)testRead[i-1] * 16) + (int)testRead[i];
testHexSet.push_back(iValue);
}
上面的代码是我转换testRead(QByteArray,基本上是char[])的失败尝试,其内容如下所示:
f0f1f2
分成三个整数。当输入如上所示时,我得到的是:
{1680, 1681, 1682}
所以甚至没有接近(顺便说一句。"f"如何等于 105?我非常确定这是因为它将数字作为小数 - 如何告诉它这些实际上是十六进制?我可以将每对字符添加到单个字符串并使用 strtol 转换为整数,但这真的要走吗?
您的计算基于 ASCII 数字,即 102 表示"f",48 表示"0"。
在计算
之前从 0 到 9 之间的每个字符中减去"0"(=48)其余部分('a'-10)
(小写)
相关文章:
- 在 c++ 中从文本文件中读取两个十六进制值
- 从char阵列中提取十六进制数字
- 如何在 c++ 中将十六进制数字转换为字符
- 如何将整数向量转换为 2 位十六进制并按顺序添加到 c 字符串?
- 使用字符串格式限制十六进制数字的数量
- 从输入中找到连续十六进制数字的最大数量
- 将十六进制数字从无符号字符转换为字符串
- 从 bin 文件 -c++ 中读取十六进制数字为每个字符 2 位数字
- 重载输出运算符给出十六进制数字而不是字符串
- 将十六进制数的 char[] 转换为对应于 ASCII 表中十六进制数字的字母的 char[] 并反转
- 上两个六角形将视觉转换和分开2个字节六角形,上两个角色,下两个十六进制在C 中转到第二个Charater
- 在 C++ 中存储为字符串的两个十六进制值上的 XOR
- 从包含十六进制数字的std::string或QString创建std::bitset或QBitArray
- fortran 64位十六进制BOZ
- "first-chance exception..."消息中的十六进制数字是什么意思?
- 连接两个十六进制数字
- 分析64位十六进制数字
- c++中两个十六进制数字的相加
- 将字节转换为两位十六进制数字
- c++编译器什么时候开始考虑在字符串转义中使用两个以上的十六进制数字?