C++中int16_t和byte[]数组互相转换如何实现? 20C

我读取文件是以二进制byte[]类型数组读取的,然后要用int16_t类型的数组进行数据操作,操作完之后又要返回一个byte[]类型的数组输出,这两个数组类型之间的相互转换是如何实现的?求实现的具体代码,是用C++编写的

3个回答

 byte input[N * 2];
byte output[N * 2];
for (int i = 0; i < N; i++)
{
int16_t x = input[N *  2] * 16 + input[N *  2 + 1] ;
int16_t y = ... 你需要的计算
output[N *  2] = y / 16;
output[N *  2 + 1] = y % 16;
}

lz的采纳率有点低,希望能及时采纳之前回答的一些问题,谢谢。

你指的转换是什么意思?是要一个byte转换成一个int16_t,还是两个byte转换成一个int16_t

fate2046
fate2046 回复qq_33108245: 没C币,没动力啊
接近 2 年之前 回复
shihengzhen101
AlbertS 回复qq_33108245: 如果不考虑的超出范围的部分,直接循环赋值就可以了啊
接近 2 年之前 回复
shihengzhen101
AlbertS 回复qq_33108245: 一个int16_t转成一个byte,如果超出范围要怎么办
接近 2 年之前 回复
qq_33108245
丷温眸丶 一个个对应着转,求大佬具体实现代码,C语音的
接近 2 年之前 回复

memcpy(&int16, byte + 偏移量, 2)反之亦然

phenix2009
白色一大坨 其实你这么理解,数组里面两个字节代表一个int16变量,你是高位乘以256加低位,还是使用memcpy都是一样的,转换回去时候也是一样
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
-

-

立即提问