从wiimote中提取配对代码的C代码,奇怪的结果
C code to extract pairing code from wiimote, strange result
我在 Ask Ubuntu 帮助某人,将 Wiimote 连接到 Ubuntu 应该是一个简单的问题,但是我们 运行 发现了驱动程序中的错误.
驱动程序会为设备请求蓝牙 pairing code
,但用户没有。
用户在 wiibrew 上找到了一个 post 解释如何用一点 C 代码提取代码。
他们给了
char pin[6];
pin[0] = 0x6D;
pin[1] = 0x7E;
pin[2] = 0x3B;
pin[3] = 0x35;
pin[4] = 0x1E;
pin[5] = 0x00;
所以。用户创建了他们认为有效的 C 文件
#include <stdio.h>
int main(void)
{
char pin[6];
pin[0] = 0x41;
pin[1] = 0x7D;
pin[2] = 0x5D;
pin[3] = 0x8A;
pin[4] = 0xD2;
pin[5] = 0x40;
printf("the password is:\n"); printf("%s \n", pin );
}
代码编译正常,没有错误,但是它应该生成一个 6 位数的密码,但只显示看起来像无意义的字符,
A}]��@
由于我不是程序员,我不明白这个输出有什么问题,为什么会给出这个结果以及我们如何使用这个得到实际的配对代码?
打印正常 0x8A
和 0xD2
不是有效的 ASCII 字符。 Ascii 使用十六进制值 0x00-0x7F。
我在 Ask Ubuntu 帮助某人,将 Wiimote 连接到 Ubuntu 应该是一个简单的问题,但是我们 运行 发现了驱动程序中的错误.
驱动程序会为设备请求蓝牙 pairing code
,但用户没有。
用户在 wiibrew 上找到了一个 post 解释如何用一点 C 代码提取代码。
他们给了
char pin[6];
pin[0] = 0x6D;
pin[1] = 0x7E;
pin[2] = 0x3B;
pin[3] = 0x35;
pin[4] = 0x1E;
pin[5] = 0x00;
所以。用户创建了他们认为有效的 C 文件
#include <stdio.h>
int main(void)
{
char pin[6];
pin[0] = 0x41;
pin[1] = 0x7D;
pin[2] = 0x5D;
pin[3] = 0x8A;
pin[4] = 0xD2;
pin[5] = 0x40;
printf("the password is:\n"); printf("%s \n", pin );
}
代码编译正常,没有错误,但是它应该生成一个 6 位数的密码,但只显示看起来像无意义的字符,
A}]��@
由于我不是程序员,我不明白这个输出有什么问题,为什么会给出这个结果以及我们如何使用这个得到实际的配对代码?
打印正常 0x8A
和 0xD2
不是有效的 ASCII 字符。 Ascii 使用十六进制值 0x00-0x7F。