【错误的做法】
下面的做法实际上是将数值1234按照字符串”1234“的方式存入char数组buf的。
int data = 1234;
char buf[10];
sprintf(buf, "%d", data);
【正确的做法】
int data = 1234;
int data_big_endian = htobe32(data); // if big or small endian is considered
char buf[10];
memcpy((void)buf, &data_big_endian, 4);
【小例子】
#include <iostream>
using namespace std;
#include <string.h>
#include <inttypes.h>
#include <endian.h>
int main(int argc, char * argv[]) {
unsigned char * buff = new unsigned char[10];
int a = 23423;
int b = 62365;
cout << a << endl;
cout << b << endl;
cout << endl;
uint16_t a_be = htobe16(a);
uint16_t b_be = htobe16(b);
cout << a_be <<