combining four 2 bit messages to make a byte message

Try looking at the bitwise AND operator. For example, if the byte is:

val = 00011011

and you want to extract Var 2, what would happen if you used:

val 00011011
AND 00001100

var2 00001000

You can then read bits 2 and 3, or you could right-shift (>>) var2 two places to get the value as a two-bit value. In code this would look similar to:

   byte val = 0b00011011;
   byte bitMask = 0b0b00001100;
   byte var2;

   var2 = val & bitMask ;     // var2 now equals 8, 00001000
   var2 = var2 >> 2;          // var2 now equals 2, 00000010

You simply set the bit mask to the bits you want to read. For example, to read your Var 3, the bit mask becomes 0b00110000, where the 1's are for the bits you wish to read.