/*
   Pack 3 Ints
   Here is a sample project of packing and unpacking 3 ints range 0..255 into one int
   By DreamVB
*/

#include <iostream>

using namespace std;
using std::endl;

int Pack3Ints(int a, int b , int c){
	return (a << 16) |(b<<8) | c;
}

void UnpackInts(int &a, int &b, int &c, int packvalue){
	a = (packvalue >> 16);
	b = (packvalue >> 8) & 0xff;
	c = (packvalue & 0xff);
}

int main(int argc, char *argv[])
{
	int a = 0;
	int b = 0;
	int c = 0;
	//Pack the 3 int values
	int value = Pack3Ints(165,48,53);

	cout << "Packing 3 ints 165,48,53" << endl << endl;
	cout << "Packed value " << value << endl << endl;
	//Unpack ints
	UnpackInts(a,b,c,value);
	cout << "Unpacked:" << endl;
	//Display unpacked values
	cout << a << endl;
	cout << b << endl;
	cout << c << endl;

	system("pause");
}
