我在将 char 数组转换为 unsigned short (UInt16) 时遇到问题。我的转换技术似乎是错误的......这是代码:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
// Symbols 0x1210 :
char test[2];
test[0] = 0x12;
test[1] = 0x10;
unsigned short n;
memcpy(&n, test, sizeof(unsigned short));
int i=0, arrToInt=0;
for(i=1;i>=0;i--)
arrToInt =(arrToInt<<8) | test[i];
/*
Now are:
n = 4114
arrToInt = 4114
But! -> 0x1210 == 4624
*/
return 0;
}
有没有办法(不)反转 char 数组?
谢谢你的帮助!