DHT22 Shows wrong values... how do I address this?

It seems rather dodgy, that the four bytes you print there, are all single-digit hex numbers. Each byte should be two hex digits, at least some of the time.

If your actual temperature is 18 degrees, then your two byte temperature value should be 180 ( decimal ), this is B4 in hex, so your data[2] and data [3] should be 00 and B4 hex respectively, and you seem to be getting 01 and 05 .