gpt4 book ai didi

将 HEX 值转换为(字符、字符串、字母和数字)

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:19 24 4
gpt4 key购买 nike

我正在用 C 编写 AVR 微 Controller Atmega16。

我不懂 C,我花时间用 PHP 编程,但我只是不懂 C。

我也不知道如何在此处发布源代码。如果有人知道,请修复我的标签。

我的问题是,我有这个功能:

unsigned char
convert_sn_to_string (const unsigned char *SN_a /* IDstring */ )
{
unsigned char i;

for (i = 0; i < 6; i++) //6 byte az SN
{

if(SN_a[i]==0x00)
{
Send_A_String("00");
}


}


return 1;
}

在 for 循环中,我可以通过十六进制访问 6 字节值。

内部变量 SN_A 我可以拥有

SN_A[0]=0x00;
SN_A[1]=0xFF;
SN_A[3]=0xAA;
SN_A[4]=0x11;
(...)

和类似的。它可以是从 00 到 FF。

我需要的是将该代码转换为 12 个字符的字符串。如果我有

SN_A[0]=0x00;
SN_A[1]=0xFF;
SN_A[3]=0xAA;
SN_A[4]=0x11;
(...)

我想得到输出

new[0]=0;
new[1]=0;
new[2]=A;
new[3]=A;
new[4]=1;
new[5]=1;
(...)

等到 12,因为我想将 6(双)AA 值更改为分隔值。

然后我可以做一个循环

for i=0 i<12 i++
{
do_something_with_one_letter(new[i]);
}

现在我可以使用这些值,我可以将它们发送到显示器或任何我需要的东西。

最佳答案

十六进制值只是另一种写整数的方式。 0xFF == 255。

所以,如果你想“拆分”它们,你需要先决定你想如何拆分它们。这实质上决定了将拆分值填充到新数组中的确切方式。

要拆分一个值,可以使用这样的东西:

hexval = 0x1A
low_nybble = hexval & 0xF
high_nybble = (hexval >> 4) & 0xF

您现在有 1 个存储在 high_nybble 中,10 个存储在 low_nybble 中。

关于将 HEX 值转换为(字符、字符串、字母和数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com