当前位置: 首页 > 知识库问答 >
问题:

如何将ascii文本的char[]转换为字节[duplicate]的uint8\u t[]

赵才俊
2023-03-14

我有一个字符数组,其中包含十六进制数据作为ascii文本,需要将其转换为字节

示例

char tagData[8] = {'0', '1', 'A', 'A', 'B', 'B', 'C', 'C' };
uint8_t data[4];

// I need to take the tagData and make it so that data[] contains the following
data[0] = 0x01;
data[1] = 0xAA;
data[2] = 0xBB;
data[3] = 0xCC;`

我有谷歌如何做到这一点,但一直没有成功。谢谢你能提供的任何帮助。

共有1个答案

秦楚
2023-03-14

十六进制数字很容易手动解码,例如:

char tagData[8] = {'0', '1', 'A', 'A', 'B', 'B', 'C', 'C' };
uint8_t data[4];

for(int i = 0, j = 0; i < 8; i += 2, ++j)
{
    uint8_t b;

    char ch = tagData[i];
    if (ch >= '0' && ch <= '9')
        b = ch - '0';
    else if (ch >= 'a' && ch <= 'f')
        b = 10 + (ch - 'a');
    else if (ch >= 'A' && ch <= 'F')
        b = 10 + (ch - 'A');
    else
        // malformed!

    b <<= 4;

    ch = tagData[i+1];
    if (ch >= '0' && ch <= '9')
        b |= ch - '0';
    else if (ch >= 'a' && ch <= 'f')
        b |= 10 + (ch - 'a');
    else if (ch >= 'A' && ch <= 'F')
        b |= 10 + (ch - 'A');
    else
        // malformed!

    data[j] = b;
}
 类似资料:
  • 问题内容: http://play.golang.org/p/BoZkHC8_uA 我想将uint8转换为字符串,但不知道如何。 这给我 任何想法? 问题答案: 只需将其转换:

  • 问题内容: 所以,我需要你的帮助。我找不到关于那个话题的任何东西。Golang是一种新鲜出炉的语言,因此对于像我这样的新手来说很难快速找到答案。 问题答案: 预先定义的Go 类型大小是特定于实现的,是32位还是64位(数字类型)。 这是将big-endian s 转换为s(s)的示例。 输出: 要么

  • 我想将char类型转换为int类型,而不丢失有符号的含义,所以我在文件int_test中编写代码。c和它的工作原理: 运行结果是: (有符号字符)a=-2,b=-2 编译日志是: gcc-o int _ test int _ test . c int _ test . c:在函数“main”中:int_test.c:9:15:警告:左移位计数 我的问题是:1.是否有简单有效的转换?2.简单地将ch

  • 问题内容: 我正在尝试将字节切片转换为GoLang中的。我找不到在线解决此问题的方法。我见过先转换为字符串然后转换为a的建议,但这似乎不起作用,它失去了它的值,最后以零结束。 例: 而且它不起作用… 问题答案: 例如, 输出:

  • 问题内容: 我在将Byte数组快速转换为字符串时遇到问题。我搜索并找到一个简单的解决方案 但是显示错误没有成员。谁能建议我解决方案? 这是我要获取的代码,并将其转换为字节数组,然后我必须将该字节数组转换为字符串。 问题答案: Swift 3 / Xcode 8 更新 : 来自的字符串: 来自的字符串: Swift 2 / Xcode 7 更新 : 来自的字符串: 来自的字符串: 先前的答案: 没有

  • 问题内容: 如何将Java字符串转换为ASCII字节数组? 问题答案: 使用该方法,为其指定适当的名称(或名称)。 例: (Java 7的前:)