我有一个双字节短int指针数组short int* hostdata
并希望将其转换为一个4字节无符号整数与网络字节顺序unsigned int* net_data
。它是好,如果我把它写这样的:短整型为无符号整数转换网络字节顺序C++
for(int i = 0; i < numsamples; ++i)
net_data[i] = htonl((unsigned int)hostdata[i]);
,或者我应该用reinterpret_cast的做到这一点,如:
for(int i = 0; i < numsamples; ++i)
net_data[i] = htonl(reinterpret_cast<unsigned int *>(reinterpret_cast<short int*>hostdata[i]));
您的2个代码示例似乎并不等同于我,因为您在您的秒示例中投射指针而不解除引用 - 意图是?另外,你想实现哪种转换?短int可以有负数,unsigned int不能 - 你更喜欢在这种情况下下溢吗?截断?重新解释? – griffin
你想对负值做什么? –
你有一个指针数组,'short int * hostdata [SIZE]',或一个数组'short int hostdata [SIZE]''的数组吗?如果是后者,你想用负数做什么? – Joni