Я работаю с некоторым кодом, который принимает в качестве входных данных двоичный файл.Однако у меня возникают проблемы с пониманием цикла for в коде, так как я не понимаю, что делают побитовые операторы с IFD_Address
, например |=
, <<
и & 0xff
.Я думаю, что IFD_Address
относится к указателю в двоичном файле, но я не уверен.Чего пытается достичь этот кусок кода?
byte[] IFD_Address_tmp = Arrays.copyOfRange(bytes, 4, 8);
int IFD_Address = 0;
int i = 0;
int shiftBy = 0;
for (shiftBy = 0; shiftBy < 32; shiftBy += 8) {
IFD_Address |= ((long) (IFD_Address_tmp[i] & 0xff)) << shiftBy;
i++;
}