将整型变量每个字节对应的值分离出来给字符数组赋值:
方法1:
移位:
int value = 258;
char table[4] = {'\0'}
for(i=0;i<4;i++)
{
table[i] = ((value >>(8*i)) & 0xff);
}
//value值右移并取出其低8位
方法2:
共用体
union a
{
int value;
char a[4];
}
value = 257;
//可自动知道a[0]~[3]的数
将字符数组拼接成整型变量:
方法1:
拼接
int cmd_table = 0;
char a[4]={'\0'};
a[0] = 254;
a[1] = 254;
a[2] = 255;
a[3] = 255;
for(i=0;i<4;i++)
{
cmd_table |= a[i] << (8*i);
}
等价于
cmd_table |= a[0]<<0
cmd_table |= a[1]<<8
cmd_table |= a[2]<<16
cmd_table |= a[3]<<24
//每8位或上需要拼接的字符数组位置,只需将数组移位就可以
方法2:
共用体
union a
{
int A;
char table[5];
}
//table均被赋值 需要取出的就是前四个字节代表的整型变量
//直接读出A即可
union a value;
value.A