From the code (Googling “ImageJ ImageCalculator Github”) , the image to image AND operation performs a “bitwise AND”.
This is why this result here looks weird at first sight:
Regarding your example: In the case of two 16-bit images where one pixel is 200 and another 500, the AND operation does this:
200: 011001000 // in binary
500: 111110100 // in binary
200 & 500 results in the following operation
= 011000000 // 192 when converted back to decimal
You can test this yourself by creating two images, making their values 200 and 500 respectively and applying the ImageCalculator AND
For 99% of intents and purposes, the AND operation is applied on binary images, which have values of either 0 or 255 pixels.
This results in the more common assumption that the AND operation will result in a pixel value of 255 only if the pixels in both images are 255, and 0 otherwise.
So there is no “comparison” of the values per-se, but a comparison of each bit that makes up the value.