//【用函数判断系统是Big Endian还是Little Endian】
//如果字节序为big-endian,返回true;
//反之为 little-endian,返回false
bool IsBig_Endian()
{
unsigned short test = 0x1234;
if(*( (unsigned char*) &test ) == 0x12)
return TRUE;
else
return FALSE;
}//IsBig_Endian()
//------------------------------------------------------------------------------
// 功 能:CRC32校验码程序
// 输入参数:48bit mac地址
// 返 回:
// temp(CRC32校验结果) or 0(输入mac地址错误)
//------------------------------------------------------------------------------
//方案一
uint32_t Mk_macaddr_crc32(uint64_t macaddr)
{
uint32_t POLY=0x04c11db7; //实际计算时,macaddr的最高位被移出,不参与计算,故移除生成多项式g(x)最高位1
//如果字节序为big-endian,返回true;
//反之为 little-endian,返回false
bool IsBig_Endian()
{
unsigned short test = 0x1234;
if(*( (unsigned char*) &test ) == 0x12)
return TRUE;
else
return FALSE;
}//IsBig_Endian()
//------------------------------------------------------------------------------
// 功 能:CRC32校验码程序
// 输入参数:48bit mac地址
// 返 回:
// temp(CRC32校验结果) or 0(输入mac地址错误)
//------------------------------------------------------------------------------
//方案一
uint32_t Mk_macaddr_crc32(uint64_t macaddr)
{
uint32_t POLY=0x04c11db7; //实际计算时,macaddr的最高位被移出,不参与计算,故移除生成多项式g(x)最高位1