原因:最近在做网络传输,无意间发现需求要将int数保存到char[4]中,传输到服务器端,服务器端要将char[4]解析出int值;
void IntToChars(char *src, int value, int offset = 0)//位置偏移
{
char *ret = src;
ret[3 + offset] = (char)(value >> 24);
ret[2 + offset] = (char)(value >> 16);
ret[1 + offset] = (char)(value >> 8);
ret[0 + offset] = (char)value;
}
int CharsToInt(char *src, int offset = 0)//位置偏移
{
int value;
value = (int )((src[offset] & 0xff)
| ((src[offset + 1] & 0xff) << 8)
| ((src[offset + 2] & 0xff) << 16)
| ((src[offset + 3] & 0xff) << 24));
return value;
}