Thanks for all replies.

When I use "right justified" ADCON1 register, as Jumper and Ingvar suggested, the scale does not behave linear. Thus, I can not match the temp reading with Celsius.

Currently, “left justified” ADCON1 register provides a scale that is perfectly linear and the formula works great (thanks to Paul's catch).

By the way, Ingvar's code is indeed nice but I can not use it.



----------