c语言 二进制的byte数组转化为int数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 二进制的byte数组转化为int数组相关的知识,希望对你有一定的参考价值。
二进制的byte数组转化为int数组
如果byte里面保存的是数值,那么你可以调整顺序(低位在前,高位在后)之后,通过memcpy直接转换:memcpy(&intVar, byteArray, sizeof(int));
如果byte保存的是数字的字符,那么你需要进行转换,具体如何转换,要看byte里面保存的是什么格式了。 参考技术A union num_
char *abyte;
int *aint;
num ;
把int数组首地址赋给num.abyte,取值用num.int[]就可以了。
如何把多个byte的数组链接在一起
比如 :
Byte one[] = 1,2,3
Byte two[] = 4,5,6,
需要得到 1,2,3,4,5,6
ObjectC语言 或者C 语音 ,不要JAVA.
BYTE two[] = 4,5,6;
int size1=sizeof(one)*sizeof(BYTE),size2=sizeof(two)*sizeof(BYTE);
BYTE *three = new BYTE[size1 + size2];
memcpy(three,one,size1);
memcpy(three+size1,two,size2);
delete []three;
前面那位朋友估计也是对的,不过我还是感觉new一下好,直接分配必须是常量,对one[],two[]要求太大
参考技术B #include<stdio.h>void main()
byte one[]=1,2,3;
byte two[] = 4,5,6;
byte three[sizeof(one)*sizeof(byte)+sizeof(two)*sizeof(byte)];
for(int i = 0 ; i<sizeof(one)*sizeof(byte) ; i++)
three[i]=one[i];
for(int j = sizeof(one)*sizeof(byte)-1;j<sizeof(one)*sizeof(byte)+sizeof(two)*sizeof(byte);j++)
three[j]=one[j-sizeof(one)*sizeof(byte)+1];
for(int k=0; k<sizeof(one)*sizeof(byte)+sizeof(two)*sizeof(byte)-1;k++)
three[k];
以上是关于c语言 二进制的byte数组转化为int数组的主要内容,如果未能解决你的问题,请参考以下文章