通信协议接收发送数据转换
类型&字节转换
char short int
应用场景
- 网关协议
- 振动、转速、温湿度采集
测试
#include <stdio.h>
unsigned char a;//1个字节 0x00-0xff
unsigned short b;//2个字节 0x00-0xffff
unsigned int c;//4个字节 0x00-0xffffffff
void main(){
printf("%d %d %d\n",sizeof(a),sizeof(b),sizeof(c));
}
上传或接收数据
float temp = 67.7;振动
char *mac = "192.168.57.47";IP
char mac_array[4] = {192,168,57,47}; 使用逗号将数据分隔
char temp_array[2] = {67,7}
假设从服务器接收到{0x4F,0xBC,0x0F,0x2F}时间戳
//函数内部的逻辑是通过位运算将每个无符号字符按照大端字节序合并为一个无符号32位整数。
unsigned int u8Tou32B(unsigned char *buffer){
return ((((((unsigned int)buffer[0]<<8)|buffer[1])<<8)|buffer[2])<<8)|buffer[3];
};