Hi, I am receiving signals in bytes. The length of the signal is not the same, so in every signal the amount of bytes is not the same. So I have an array of:

byte x = Data[0]; // Data[0] different in every signal
for (byte y = 1, y<=x; y++)

Data[1]
Data[2]
.
.
Data[y] with “y” different in every signal and between 1 to 6.

Then i must look for specific combination of bits in every byte, and i don’t know how to do it.
Please, if someone can help me ?
Thank you!

You like it all you want, but it is WRONG.
Think about it; the result of (Variable [ 0 ] && 0xE0) will be 'true' (aka one) if Variable [ 0 ] is non-zero, and zero if Variable [ 0 ] is zero.
One or zero is never, ever going to be equal to 0xE0.

Probably one of the simplest methods for you to use, that will be easy for you to follow would be

byte special=data[0]/32;

Since byte type variables can't hold fractions, all the least significant bits have simply been disposed of.
You will now have a byte value that holds anything from 0 to 7 (dependent on those three bits you were interested in)

Data[0] is the number of the bytes in the signal.
If Data[1] starts from 11 then i must decode the bytes from Data[3] till [n-1]
If Data[1] starts from 00 then i must decode the bytes from Data[2] till [n-1]

I am thinking to use:

If ((Data[1] && 0xC0) == 0xC0)
{for (n=3, n<Data[0],n++)

if((Data[n] && 0xE0) == 0xE0)
…

}else{
for (n=2, n<Data[0],n++)
if((Data[n] && 0xE0) == 0xE0)
…