I apologise for late reply, somehow my this forum account was on hold so wasn’t able to check this. And here is the answer from another forum:
The OPENCM board you are using is 32 bits, and the default size for int variables is probably 32 bits. The above construction is not guaranteed to do what you want, because C/C++ compilers are not required to evaluate the Wire.read() statements in any particular order.
The full answer and code can be found here