1. 程式人生 > >交換int中第一個位元組和第四位元組的值

交換int中第一個位元組和第四位元組的值

根據上一篇文章中修改int中第2個位元組的內容,這裡還有另一個題“交換int中第一位元組和第四位元組的值?

這個題使用同樣的方法,將int變數放入char buffer中去,然後交換buffer[0]和buffer[3]即可。上程式碼:

#include<iostream>
#include<string.h>

using namespace std;
#define BUFSIZE 5
int main()
{
	int a;
	cout << "輸入變數a:";
	cin >> a;

	char buffer[BUFSIZ] = { 0 };
	memmove(buffer, &a, sizeof(a));
	cout << "int a 中每個位元組的內容為:";
	for (int i = 0; i < sizeof(a); ++i)
	{
		cout << hex << (int)buffer[i] << " ";
	}
	cout << endl;
	char t = buffer[0];
	buffer[0] = buffer[3];
	buffer[3] = t;
	cout << "交換a中第一位元組和第四位元組的內容後為:";
	for (int i = 0; i < sizeof(a); ++i)
	{
		cout << hex << (int)buffer[i] << " ";
	}
	cout << endl;
	memmove(&a, buffer, sizeof(a));
	cout << "a:" << dec << a << endl;
	return 0;
}

這裡邊需要注意的有以下點:

1>藉助於memmove將int記憶體中的每個位元組放入到buffer中去;

2>輸出時,控制好格式,hex只對int起作用,因此要把buffer[i]強制轉型為int:cout << hex << (int)data[i] << endl;