I have solved it.
When the number exceeds the limit of integer data type i.e. -32768 to 32767 then it is divided by 65536, and the remainder is considered.
So, in my case, since multiplication has higher precedence it will be solved first, so we get,
400*400=160000 and offcourse this value is crossing the integer data type limit, so it will be divided by 65536(2^16, since integer is of 16 bit or 2 byte) and then its remainder is taken.
160000%65536 = 28928
so equation becomes from this 400*400/400 to 28928/400
and offcourse, now 28928 is in the limit of integer data type, it will be divided normally,
so will get the result as 72.32, but the integer data type does not support the floating value and hence the decimal part is truncated so the answer is 72.
In case of such a number which is not in the integer data type limit and is smaller than 65536,
then 65536 will get divided by that number and remainder is considered, and this remainder automatically becomes negative get printed.
for eg. i=200*200/200;
i=25536/200; // 25536 is the remainder of 65536/40000
i=-127.68 // automatically becomes negative and offcourse the floating value will get truncated, so answer is,
i=-127.
:)