資源簡介
資源為32位機下高低位字節交換類,適用于c++語法下的環境,一般跨平臺通訊程序時,涉及主機字節不一致情況,如Linux下的服務程序和windows下客戶端程序通訊時,有可能需要做主機字節高低位交換,本類提供int、float、short、double、long型數據的字節交換處理并提供判斷是否需要交換的接口函數,希望有此需要的童鞋不必再浪費時間寫,直接使用!

代碼片段和文件信息
//?SwapBites.cpp:?implementation?of?the?CSwapBites?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
#include?“SwapBites.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CSwapBites::CSwapBites()
{
}
CSwapBites::~CSwapBites()
{
}
/*?byte?sequence:?1234?=>?4321
?*/
int?CSwapBites::Int_Bswap(int?value)
{
??union?{
????int??ii;
????char?cc[4];
??}swap;
??char?temp;
??swap.ii?=?value;
??temp?=?swap.cc[0];
??swap.cc[0]?=?swap.cc[3];
??swap.cc[3]?=?temp;
??temp?=?swap.cc[1];
??swap.cc[1]?=?swap.cc[2];
??swap.cc[2]?=?temp;
??return?(swap.ii);
}
/*?byte?sequence:?12?=>?21
?*/
short?CSwapBites::Short_Bswap(short?value)
{
??union?{
????short?ss;
????char??cc[2];
??}swap;
??char?temp;
??swap.ss?=?value;
??temp?=?swap.cc[0];
??swap.cc[0]?=?swap.cc[1];
??swap.cc[1]?=?temp;
??return?(swap.ss);
}
/*?byte?sequence:?1234?=>?4321
?*/
long?CSwapBites::Long_Bswap(long?value)
{
??union?{
????long?ll;
????char?cc[4];
??}swap;
??char?temp;
??swap.ll?=?value;
??temp?=?swap.cc[0];
??swap.cc[0]?=?swap.cc[3];
??swap.cc[3]?=?temp;
??temp?=?swap.cc[1];
??swap.cc[1]?=?swap.cc[2];
??swap.cc[2]?=?temp;
??return?(swap.ll);
}
/*?byte?sequence:?1234?=>?4321
?*/
float?CSwapBites::Float_Bswap(float?value)
{
??union?{
????float?ff;
????char??cc[4];
??}swap;
??char?temp;
??swap.ff?=?value;
??temp?=?swap.cc[0];
??swap.cc[0]?=?swap.cc[3];
??swap.cc[3]?=?temp;
??temp?=?swap.cc[1];
??swap.cc[1]?=?swap.cc[2];
??swap.cc[2]?=?temp;
??return?(swap.ff);
}
/*?byte?sequence:?12345678?=>?87654321
?*/
double?CSwapBites::Double_Bswap(double?value)
{
??union?{
????double?dd;
????char???cc[8];
??}swap;
??char?temp;
??swap.dd?=?value;
??temp?=?swap.cc[0];
??swap.cc[0]?=?swap.cc[7];
??swap.cc[7]?=?temp;
??temp?=?swap.cc[1];
??swap.cc[1]?=?swap.cc[6];
??swap.cc[6]?=?temp;
??temp?=?swap.cc[2];
??swap.cc[2]?=?swap.cc[5];
??swap.cc[5]?=?temp;
??temp?=?swap.cc[3];
??swap.cc[3]?=?swap.cc[4];
??swap.cc[4]?=?temp;
??return?(swap.dd);
}
/*
*判斷主機字節與網絡字節高地位順序是否一致,
*return?TRUE--一致,FALSE---不一致
*/
int?CSwapBites::IsHostNetByteSame()
{
int?tag?=?99;
if?(tag==ntohl(tag))
{
return?TRUE;
}
else
{
return?FALSE;
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????623??2011-02-25?09:18??SwapBites.h
?????文件???????2573??2011-07-12?14:02??SwapBites.cpp
-----------?---------??----------?-----??----
?????????????????3196????????????????????2
- 上一篇:C++語言編程病人就醫管理系統
- 下一篇:平差課程設計
評論
共有 條評論