Dra*_*uri 1 c arrays pointers casting
假设我有一个unsigned char(或byte)数组.我想从内存中取出array [1]和array [2]并将其转换为short int(2个字节).类似于联合的工作方式,但不是从第一个字节开始.
例:
#include <stdio.h>
void main()
{
unsigned char a[28];
unsigned short t;
a[0]=12;
a[1]=10;
a[2]=55;
t=(short) *(a+1);
printf("%i", t);
}
Run Code Online (Sandbox Code Playgroud)
我想要的是十进制值14090.或370Ah.
谢谢.
编辑:我忘了说,但大多数人都从我的例子中了解到,我正在研究一台小端机器.一个8位Atmel微控制器.
这很简单:
unsigned short t = (a[2] << 8) | a[1];
Run Code Online (Sandbox Code Playgroud)
注意,这假设unsigned char是8位,这很可能是这种情况.