byte-int相互转换、char与二进制

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值