我正在处理一些将二进制文件作为输入的代码。但是,由于无法理解按位运算符对IFD_Address
(例如|=
,<<
和{{ 1}}。我认为& 0xff
指向二进制文件中的指针,但是我不确定。这段代码试图实现什么?
IFD_Address
答案 0 :(得分:0)
最好从移动位而不是数字的角度来理解此行为。字节包括八位,整数,32位。循环基本上会占用数组中的每个字节,并将相应的位{8}块中的IFD_Address
放在8位块中,从右(最低有效)到左(最高有效),如下所示:
关于按位运算:
& 0xff
是capture the 8 bits into an integer所必需的; <<
左移位以选择IFD_Address
中的适当位置; |=
设置IFD_Address
中的位。有关详细信息,请参见this tutorial。