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.

参考技术A BYTE one[]=1,2,3;
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数组的主要内容,如果未能解决你的问题,请参考以下文章

java 16进制byte数组 转化成UTF-8格式字符串

如何把一个byte数组转化为字符串

C 字节数组转换成字符串

如何将16进制 转换byte数组

Java语言中,如何将String转化成Int数组

C语言中怎么将一个整形数组转化为一个float或者int类型数字比如 int a[5]=1,2,