Skip to content

Instantly share code, notes, and snippets.

@alecgorge
Last active December 16, 2015 11:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alecgorge/5424769 to your computer and use it in GitHub Desktop.
Save alecgorge/5424769 to your computer and use it in GitHub Desktop.
int MakeSendPacket(int BoxType, int TeamNumber, int RecTeamNumber) {
// 0000000000000011 BoxType << 12
// 0011000000000000
int Packed = BoxType << 12;
Packed = Packed | (TeamNumber << 6);
Packed = Packed | RecTeamNumber;
return Packed;
}
int DecomposePacket(int Packed, int *BoxType, int *TeamNumber, int *RecTeamNumber) {
// 0011001000110111
//&1111000000000000
// 0011000000000000 >> 12
//&0000000000001111
// 0000000000000011
//
// 0011001000110111
//&0000111111110000 (0x0FF0)
// 0000001000110000 >> 6
// 0000000000001000
//
// 0011001000110111
//&0000000000111111 (0x3F)
// 0000000000110111
*BoxType = ((Packed & 0xF000) >> 12) & 0x000F;
*TeamNumber = (Packed & 0x0FFF) >> 6;
*RecTeamNumber = Packed & 0x003F;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment