如何修改int类型的第二个字节

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/swty3356667/article/details/84329898

如何修改int类型的第二个字节?

思路:重点在于分离int的四个字节,取出第二个字节,可以借助memmove来实现,因为memmove更安全,原因参考上一篇博客。首先使用memmove将int内存中的内容拷贝到字符数粗中,然后在数组中修改某个字节的值,然后再把数组中的值返回到int中。

#include<string.h>
#include<iostream>
using namespace std;
#define MAX 5

int main()
{
    int buf[MAX] = {0};
    int p1 = 0;
    int q1 = 0;
    cin>>p1;

    memcpy(buf,&p1,sizeof(int));
    cout<<"原来的数组:"<<endl;
    for(int i = 0;i< MAX;++i)
    {
         cout<<hex<<(int)buf[i]<<" ";//hex是将int型转换成十六进制
    }
    cout<<endl;

    buf[1] = 1;//修改第二个字节
    cout<<"修改后的数组"<<endl;
    
    for(int i = 0;i<MAX;i++)
    {
         cout<<hex<<(int)buf[i]<<" ";
    }
    cout<<endl;

    memcpy(&p2,buf,sizeof(int));
    cout<<dec<<"最终的结果int"<<p2<<endl;
}

猜你喜欢

转载自blog.csdn.net/swty3356667/article/details/84329898