zxggmail 发表于 2013-1-30 01:25:03

转换字节顺序

从PostgreSQL传来的二进制数据是网络字节顺序的,即高位先到,低位后到.
使用时转换成本机字节顺序, 才能万无一失.

//将网络字节序的字节数据,转换成本机字节顺序的:long long netToHost_Int8(byte * bytes, int len = 8){    unsigned long long llv = 0;    for (int i = 0; i < len; i++){      llv <<= 8;      llv |= bytes;    }    return llv;}double netToHost_Double(char * chars){    unsigned long long llv = netToHost_Int8((byte*)chars);    return *(double*)&llv;}int netToHost_Int4(char * chars){    return (int)netToHost_Int8((byte*)chars, 4);}short netToHost_Int2(char * chars){    return (short)netToHost_Int8((byte*)chars, 2);}
页: [1]
查看完整版本: 转换字节顺序