c++ byte 转 int(C++基本类型整形)
2016-06-20 18:36
232 查看
c++本身不存在BYTE关键字。但在C++中byte可以用unsigned char来表示,即无符号类型。那么如何将C++ 中的Byte转成整形呢?
其实在C++中,无论是BYTE转int还是int转BYTE,都是可以借助对应的方法的,即c++ byte转int的方法是:bytesToInt();反过来int整形转BYTE的方法是intToByte();有了这个两个方法我们就可以把c++ byte转int,也可以把c++ int转byte了。那接下来我们就分享关于c++ byte转int的情况。
代码清单:
C++ byte转int的应用场景:当接受到一个端口号字符类型为字节BYTE的时候,我们如何把这个字节转换成int呢?
看下面的代码清单:
分析:以上的这段代码运行是有错误的,那错误在哪里?该如何改正呢?实际上我们观察到这个代码
这样的思路完全可以按照下面的位操作来执行
其实在C++中,无论是BYTE转int还是int转BYTE,都是可以借助对应的方法的,即c++ byte转int的方法是:bytesToInt();反过来int整形转BYTE的方法是intToByte();有了这个两个方法我们就可以把c++ byte转int,也可以把c++ int转byte了。那接下来我们就分享关于c++ byte转int的情况。
代码清单:
//c++ byte转int int bytesToInt(byte* bytes,int size = 4) { int a = bytes[0] & 0xFF; a |= ((bytes[1] << 8) & 0xFF00); a|= ((bytes[2] << 16) & 0xFF0000); a |= ((bytes[3] << 24) & 0xFF000000); return a; }
C++ byte转int的应用场景:当接受到一个端口号字符类型为字节BYTE的时候,我们如何把这个字节转换成int呢?
看下面的代码清单:
char buf[2]; //这个字符数组为接受的端口双字节,最低都包含一个有效字节 char port[2]; port[0]=buf[1]; port[1]=buf[0]; int number=0; number = (*((int *)port));
分析:以上的这段代码运行是有错误的,那错误在哪里?该如何改正呢?实际上我们观察到这个代码
port[0]=buf[1]; port[1]=buf[0]; int number=0;
这样的思路完全可以按照下面的位操作来执行
int number = buf[0] | buf[1] << 8;
相关文章推荐
- c语言第一次作业
- 【转】C++ vector的使用
- C#调用C/C++动态库 封送结构体,结构体数组
- [leetcode] 【排序】 41. First Missing Positive
- C语言 学生宿舍管理系统
- C语言应用-飞机游戏
- Visual Studio 2015编译64位MySQL Connector/C++
- 如何快速读懂大型C++程序代码
- [代码实例][C语言]复制文件
- [代码实例][C语言]写入文本文件
- [代码实例][C语言]读取文本文件
- c语言第三次作业
- pat-5-34 通讯录的录入与显示
- Eclipse编写c++/c工程时C/C++ Build Settings下无tool settings 选项
- c++的复制构造函数
- C++ auto_ptr
- C++实现在一段取值范围内输出不相同的随机数
- C++中虚析构函数的作用
- c语言第二次作业
- 解释型语言 && 编译型语言