c++用socket进行网络传输时需要用到send函数,send里发送的数据格式为const char*。
我需要发送一个double类型的数,之前试过用流转换成char再发送但是效果不好。
请教师兄发现可以用union进行转换,原理是union里的数据共用内存。
例:
union Doubletochar{
double data;
char a[8];
}zhuan;
zhuan = 0.0031447322077365674;
令zhuan.data 等于一个double,那么a[8]里就是对应的八位字节,a[0]是最低位。
例:
union InttoUchar{
int data;
UCHAR a[8];
}zhuan2;
zhuan2.data = 511;//511 = 1 1111 1111