gpt4 book ai didi

c - 使用 char 从 MAC 地址输出 PIN

转载 作者:行者123 更新时间:2023-12-03 05:43:41 25 4
gpt4 key购买 nike

我绝对不是在做C,但是为了一件小事,我需要做一个非常简单的函数。我无法理解结果。

我有一个 MAC 地址,我需要输出 PIN 码。 (wiimote)到目前为止我已经得到了这个功能

int main(int argc, char *argv[])
{
char pin[6];
pin[0] = 0x61;
pin[1] = 0xC7;
pin[2] = 0x5E;
pin[3] = 0x00;
pin[4] = 0x9E;
pin[5] = 0xCC;
printf(pin);
return 0;
}

问题是我得到的结果是:aヌ^这是我应该得到的吗?值应该不同吗?

正如 David Hoelzer 所说,我可能会找到将十六进制转换为字符串的解决方案?

谢谢!

最佳答案

这是您需要的吗?

unsigned char pin[6];   // Unsigned ...
pin[0] = 0x61;
pin[1] = 0xC7;
pin[2] = 0x5E;
pin[3] = 0x00;
pin[4] = 0x9E;
pin[5] = 0xCC;

printf("%02x:%02x:%02x:%02x:%02x:%02x\n",pin[0],pin[1],pin[2],pin[3],pin[4],pin[5]);

将打印

61:c7:5e:00:9e:cc

说明:

%x   // Print a number in hexadecimal format using lower case (%X for upper case)
%2x // Print at least 2 characters (prepend with space)
%02x // Print at least 2 characters and prepend with 0

使用unsigned char pin[6]以避免打印期间的符号扩展。如果您使用char pin[6],您将得到

61:ffffffc7:5e:00:ffffff9e:ffffffcc

这可能不是您想要的。

如果您出于某种原因需要使用char,您可以这样做:

char pin[6];
pin[0] = 0x61;
pin[1] = 0xC7;
pin[2] = 0x5E;
pin[3] = 0x00;
pin[4] = 0x9E;
pin[5] = 0xCC;

printf("%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx\n",pin[0],pin[1],pin[2],pin[3],pin[4],pin[5]);
^^
Force type to char

关于c - 使用 char 从 MAC 地址输出 PIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34759091/

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