作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须使用十六进制数组,因为我正在编写一个与视频服务器 Controller 通信的程序,而他只理解十六进制的消息。我可以将视频 Controller 连接到我的服务器,但是当我尝试使用 send() 函数发送消息时,传递包含我的十六进制信息的无符号字符数组时,它不起作用。
这就是我使用数组的方式。不知道对不对。
void sendMessage()
{
int retorno;
CString TextRetorno;
unsigned char HEX_bufferMessage[12]; // declaration
// store info
HEX_bufferMessage[0] = 0xF0;
HEX_bufferMessage[1] = 0x15;
HEX_bufferMessage[2] = 0x31;
HEX_bufferMessage[3] = 0x02;
HEX_bufferMessage[4] = 0x03;
HEX_bufferMessage[5] = 0x00;
HEX_bufferMessage[6] = 0x00;
HEX_bufferMessage[7] = 0xD1;
HEX_bufferMessage[8] = 0xD1;
HEX_bufferMessage[9] = 0x00;
HEX_bufferMessage[10] = 0x00;
HEX_bufferMessage[11] = 0xF7;
retorno = send(sckSloMo, (const char*) HEX_bufferMessage, sizeof(HEX_bufferMessage), 0);
TextRetorno.Format("%d", retorno);
AfxMessageBox(TextRetorno); // value = 12
if (retorno == SOCKET_ERROR)
{
AfxMessageBox("Error Send!! =[ ");
return;
}
return;
}
最佳答案
突击测验。有什么区别:
int n = 0x0F;
和:
int n = 15;
如果您说“没什么”,那么您是对的。
当分配整数值时,为八进制指定 0x
、00
或为十进制指定任何内容都不会影响实际存储的内容。这对你来说很方便,只是程序员。这些是我们正在谈论的整数变量——它们只存储数字数据。他们不存储或关心基数。事实上,您可能会惊讶地发现,当您将数值赋给整数变量时,实际存储的不是十进制、十六进制甚至八进制——而是二进制。
由于您将这些值存储为 unsigned char
,而 char
(unsigned
或其他)实际上只是一个整数类型,那么你在做什么很好:
HEX_bufferMessage[0] = 0xF0;
HEX_bufferMessage[1] = 0x15;
HEX_bufferMessage[2] = 0x31;
但是你的问题没有意义:
Anyone knows if using an array of unsigned char is the right way to store hexadecimals??
关于c++ - 如何将十六进制存储在数组中? C++ 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19664818/
我是一名优秀的程序员,十分优秀!