C++ – 字节数组byte与int的相互转换
原创文章,作者:StubbornHuang,如若转载,请注明出处:《C++ – 字节数组byte与int的相互转换》https://www.stubbornhuang.com/960/
一个字节为8位二进制位
1 int转字节数组byte[]
C++中,字节数组byte通常用unsigned char表示,所以int转换为字节数组本质上是将int转换为unsigned char数组。int一般为4个字节,那么就为32位二进制位表示。
代码如下:
void IntToByte(int value, unsigned char* bytes, int size = 4)
{
memset(bytes, 0, sizeof(unsigned char) * size);
bytes[0] = (unsigned char)(0xff & value);
bytes[1] = (unsigned char)((0xff00 & value) >> 8);
bytes[2] = (unsigned char)((0xff0000 & value) >> 16);
bytes[3] = (unsigned char)((0xff000000 & value) >> 24);
}
2 字节数组byte[]转int
代码如下:
int ByteToInt(unsigned char* byteArray, int length)
{
int value = byteArray[0];
value |= (byteArray[1] << 8);
value |= (byteArray[2] << 16);
value |= (byteArray[3] << 24);
return value;
}
3 使用场景
例如在有些情况下的通信协议,举一个简单的栗子,在socket通信下,我们通常会想要知道本次接收的数据的长度有多大,那么这个时候就可以在要发送数据块的前面使用4个字节标志数据块的大小,而这时候就需要将int转换为字节数组。
如果您觉得对您有帮助,可以请站长喝一杯咖啡哦!
用支付宝或者微信扫描二维码
对站长进行赞助
![]() 支付宝扫一扫 |
![]() 微信扫一扫 |
金额随意,礼清义重
当前分类随机文章推荐
- C++ - std::string输出双引号到字符串
- C++ - 控制台程序在控制台窗口可变参数格式化带颜色输出日志信息
- C++读取Shp文件并将Shp转化为DXF
- C++ - 使用C++标准库过滤Windows文件名中的非法字符
- C++ - 得到字符串中某个字符串出现的个数
- C++ 回调函数
- C++11/std::thread - 线程的基本用法
- C++ - 只有在Debug模式下才使用std::cout输出调试日志,Release发布版本不输出调试日志
- C++ Map中存储动态指针时正确释放内存
- C++11/std::atomic - 原子变量(不加锁实现线程互斥)
全站随机文章推荐
- Unity - Color32[]转IntPtr
- C++11/std::thread - 可作为线程函数的几种方式总结
- 资源分享 - Physically Based Rendering From Theory To Implementation (Second Edition)英文高清PDF下载
- C++11 - std::function简要介绍以及可包装函数的几种形式总结
- C++ - 使用Websocket++编写客户端连接WebSocket服务器并进行通信
- Duilib - 各个控件的消息响应类型
- C++ - std::string输出双引号到字符串
- 资源分享 - Mathematics for 3D Game Programming and Computer Graphics, Second Edition 英文高清PDF下载
- 资源分享 - 神经网络与深度学习应用实战(刘凡平著)PDF下载
- 资源分享 - 鸟哥的Linux私房菜-基础学习篇(第四版)带书签PDF下载