如何修改int型別的第二個位元組
阿新 • • 發佈:2018-11-23
如何修改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; }