Microchip 9808 temperature sensor - Incorrect calculation result
I've run into this problem myself recently. The error originates from the manufacturer's datasheet. When the 'negative' flag is set the proper computation is:  

temp -= 256;  // correct!


instead of

temp = 256 - temp;  // incorrect! But this is the example in the datasheet!


Here are a couple examples of control code for the MCP9808 on Github:

lexruee/mcp9808

adafruit/Adafruit_MCP9808_Library