【发布时间】:2015-06-25 15:29:09
【问题描述】:
我想将无符号短值从 MSB 优先转换为 LSB 优先。做了下面的代码,但它不工作。有人可以指出我所做的错误
#include <iostream>
using namespace std;
int main()
{
unsigned short value = 0x000A;
char *m_pCurrent = (char *)&value;
short temp;
temp = *(m_pCurrent+1);
temp = (temp << 8) | *(unsigned char *)m_pCurrent;
m_pCurrent += sizeof(short);
cout << "temp " << temp << endl;
return 0;
}
【问题讨论】:
-
实际目的是保留在其他功能中,对不起蝙蝠编码风格
-
“它不工作”不是对问题的正确描述。它可以表示从“由于错误 XYZ 无法编译”到“它正在计算 pi 的前 100 位数字,而它应该做其他事情”。
-
您是指最高有效位还是字节?
-
你真正想做什么?我的意思是,你想在不同的处理器之间传输二进制数据,还是只是一个练习?
-
B是指位还是字节?代码看起来像B用于字节,但它“不起作用”。请澄清。
标签: c++ c visual-c++