GET requests will generate long, complicated URLs with that many options with the default behavior.
POST requests can leave you with short URLs, but can behave badly with the "back" button and aren't bookmark friendly.
To generate short URLs with a GET, you would either need an intermediary script that translated the selected options to something more compact, or you would need to observe the selected options using JavaScript and create the compact URL client-side.
Bitwise math would mean assigning each bit or group of bits in a single variable to a given option and predefined set of values. For example a 32 bit integer could represent 8 attributes of 4 bits each:
01010010010001001010101010101001
Or:
0101 0010 0100 0100 1010 1010 1010 1001
#8 #7 #6 #5 #4 #3 #2 #1
So one integer could represent eight attributes, with 16 possible values per 4 bit group. Obviously that requires elaboration, but I'm sure someone on SO has already asked that question and I'm not up for typing any more right now. :)