for(i = 0, i <= n; ++i) // n должно быть <= количеству битов в типе данных для e и s1, те 32 бита для инта if(((e >> i)&1) == ((s1>>i)&1)) // (e >> i) &1 - получает значение i-того бита m = arr[i]; else m = arr_[i];