#include "util.h" #include float Bytes2Float (char * data) { Float ff ; ff.byte[0] = data[1]; ff.byte[1] = data[0]; ff.byte[2] = data[3]; ff.byte[3] = data[2]; return ff.data; } uint32_t Bytes2Int (char * data) { Int I; I.byte[0] = data[1]; I.byte[1] = data[0]; I.byte[2] = data[3]; I.byte[3] = data[2]; return I.data; } int16_t Bytes2Int16 (char * data) { Int16Tobyte int16_byte; int16_byte.byte[0] = data[1]; int16_byte.byte[1] = data[0]; return int16_byte.value; } // ----------------------------------------------------------------- // 函数功能: hex字符串转byte数组 // 函数名称: hexbyte_to_hex_str // 参数1 : src 源字符串 // 参数2 : obj 目标字节数组 // 说明 : "01020304" --> {0x01,0x03,0x03,x04} 或 "01 02 03 04"->{0x01,0x03,0x03,x04} // 返回值 : 1 成功 // ----------------------------------------------------------------- int hexstr_to_hexbyte (char *src, char *obj, uint16_t length) { char h1, h2; uint8_t s1, s2; int i; length = length / 2; for (i = 0; i < length; i++) { h1 = src[2 * i]; h2 = src[2 * i + 1]; s1 = toupper (h1) - 0x30; if (s1 > 9) s1 -= 7; s2 = toupper (h2) - 0x30; if (s2 > 9) s2 -= 7; obj[i] = s1 * 16 + s2; } return length; } // 754 转float float float_to_iee754 (float ff1,char * data) { Float ff; ff.data = ff1; data[0] = ff.byte[3]; data[1] = ff.byte[2]; data[2] = ff.byte[1]; data[3] = ff.byte[0]; return ff.data; } // 754 转float float iee754_to_float (char * data) { Float ff; ff.byte[3] = data[0]; ff.byte[2] = data[1]; ff.byte[1] = data[2]; ff.byte[0] = data[3]; return ff.data; } uint32_t byte_to_Inverse(char * data) { Int I; I.byte[0] = data[3]; I.byte[1] = data[2]; I.byte[2] = data[1]; I.byte[3] = data[0]; return I.data; }