Sorry for not being clear.
That is a VERY large number, much larger than can fit into a unsigned long. Is that decimal or binary representation?
This is the binary representation of the number.
Can you modify that code to make it more obvious which block of code you're interested in having executed? There are three 'if' statements, two of which have an associated code block, and it's not obvious which of these five things you're talking about.
Yes and it's this part below mate.
else if(PID >= 0x01 && PID <= 0x20)
if(i << (0x20 - PID) & SupportedPID20);
The SupportedPID20 variable (decleared at the top of my code) will contain something like 11111111001111110001010111110111 binary (when running on a car) and lets say i variable will contain something like 00010000000000000000000000000000 binaray (if PID = 0x04). Am wanting to compare 1 bit so if bit 4 of SupportedPID20 is 1 and bit 4 of i is 1 will the if statment return true? Well thats what i want it to do anyway lol.