首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符型转换成整型,该如何处理

2012-05-29 
字符型转换成整型代码:C/C++ code#include iostream#include stringusing namespace stdint main(){c

字符型转换成整型
代码:

C/C++ code
#include <iostream>#include <string>using namespace std;int main(){    char buf[4];    buf[0] = 0x31;    buf[1] = 0x32;    buf[2] = 0x33;    int num;    memset(&num, 0, sizeof(int));    memcpy(&num, buf, 2);    cout << num << endl;    return 0;}


求解,结果是怎么来的。


[解决办法]
整型变量num占4个字节,执行memset(&num,0,sizeof(int))这一条语句后,num的值就变成了0,则num的十六进制表示为:0x0000 0000

执行memcpy(&,buf,2)完这一条语句后,就将buf[0]和buf[1]这两个字节中的内容复制到了变量num的第1个和第二个字节中,那么num的值用十六进制表示为:0x0000 3231,将其变为整型就是:12849
[解决办法]
探讨

整型变量num占4个字节,执行memset(&amp;num,0,sizeof(int))这一条语句后,num的值就变成了0,则num的十六进制表示为:0x0000 0000

执行memcpy(&amp;,buf,2)完这一条语句后,就将buf[0]和buf[1]这两个字节中的内容复制到了变量num的第1个和第二个字节中,那么num的值用十六进制表示为:0x0000 3231,将其变为整型……

[解决办法]
little endian
低地址放的是低字节
所以是32在高字节31在低字节

热点排行