1、byte-int转换
转自:https://blog.csdn.net/qq_28468727/article/details/52498510
void IntToByteArray(int i,byte *bytes,int size = 4)
{
//byte[] bytes = new byte[4];
memset(bytes,0,sizeof(byte) * size);
bytes[0] = (byte) (0xff & i);
bytes[1] = (byte) ((0xff00 & i) >> 8);
bytes[2] = (byte) ((0xff0000 & i) >> 16);
bytes[3] = (byte) ((0xff000000 & i) >> 24);
return ;
}
//byte转int
int ByteArrayToInt(byte* bytes,int size = 4)
{
int addr = bytes[0] & 0xFF;
addr |= ((bytes[1] << 8) & 0xFF00);
addr |= ((bytes[2] << 16) & 0xFF0000);
addr |= ((bytes[3] << 24) & 0xFF000000);
return addr;
}
另外memcpy也可以实现将int逐字节复制到char,在内存中数据一致(二进制数据一致),但是可能在显示时出现不同
2、char与二进制
两者间的比较:二进制数可以直接用强制转换为char完成比较,char到二进制需要与0xFF位与(&)运算,再与二进制数比较
例如:(char)0xEF,char a = 'a'; a & 0xFF
二者间的转换:https://blog.csdn.net/d7185540/article/details/77040069