我正在编写一个非常简单的代码来测试c ++上的Hex数据
int main()
{
unsigned char bytestosend[4] = {0xB5, 0x62, 0x06, 0x08};
cout << &bytestosend << endl;
}
Run Code Online (Sandbox Code Playgroud)
终端上的数据是:0xbfa1ef58
怎么会发生这种情况?当我删除'&'时,它给了我奇怪的符号
我使用串行编程与GPS设备通信我正在使用二进制协议与它通信.它以这样的方式工作:当写入设备时,我每1秒接收一个数据流.我的问题是,当我轮询这些数据并将其打印出来时,我会接收ASCII字符而不是HEX数据.我需要查看十六进制数据,以便我可以解析它.这是我写的代码
int Open_UBX()
{
unsigned char PollPOSLLH[11] = {0xB5,0x62,0x06,0x01,0x03,0x00,0x01,0x02,0x01,0x0E,0x47};
write(fd,&PollPOSLLH,11);
}
int main(){
Open_UBX();
while (c!='q')
{
if (read(fd,&data,1)>0)
{
write(STDOUT_FILENO,&data,1); // if new data is available on the serial port, print it out
}
if (read(STDIN_FILENO,&c,1)>0)
{
write(STDOUT_FILENO,&c,1); // if new data is available on the console, send it to the serial port
}
}
close(fd);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
当然端口是打开的,设置已配置,但我的问题是数据不显示十六进制所以我无法解析它我只得到我不明白的字符
我现在真的习惯于java编程我想使用cpp而且我想知道什么是在cpp中调用的字符串相当愚蠢的问题?我试图使用int但编译器似乎不明白