double,int等数据类型转换,传输,还原的示例
#include <iostream> using namespace std; int main() { double d1,d2,d3,d4; int i1,i2,i3,i4; unsigned char buf1[4]={0}; unsigned char buf2[4]={0}; d1=200000.3334; d2=-200000.3334; d3=d1*1000;d4=d2*1000; i1=(int)d3; i2=(int)d4; buf1[0]=i1>>24; buf1[1]=i1>>16; buf1[2]=i1>>8; buf1[3]=i1; buf2[0]=i2>>24; buf2[1]=i2>>16; buf2[2]=i2>>8; buf2[3]=i2; i3=buf1[0]<<24|buf1[1]<<16|buf1[2]<<8|buf1[3]; i4=buf2[0]<<24|buf2[1]<<16|buf2[2]<<8|buf2[3]; d3=(double)i3/1000; d4=(double)i4/1000; cout.precision(10); // 设置输出精度 cout << "tranform test:" << endl; cout<<"d1:"<< d1 << endl; cout<<"d2:"<< d2 << endl; cout<<"i1:"<< i1 << endl; cout<<"i2:"<< i2 << endl; cout<<"i3:"<< i3 << endl; cout<<"i4:"<< i4 << endl; cout<<"d3:"<< d3 << endl; cout<<"d4:"<< d4 << endl; return 0; }
运行结果:
tranform test:
d1:200000.3334
d2:-200000.3334
i1:200000333
i2:-200000333
i3:200000333
i4:-200000333
d3:200000.333
d4:-200000.333