which bit is set in a byte?

what is this? PCINT on an AVR?

How are you getting this data? Presumably you're reading off the PINx register of the corresponding port; you need to handle the case where multiple pins are asserted, and the case where you get an interrupt because the value on the pin has returned to it's idle value... Your assumption that only one bit would be set is invalid unless the hardware somehow restricts which pins can be asserted simultaneously.