Max6675.cpp

I don’t understand this highlight code, can you give me some explain:
MAX6675::MAX6675(int8_t SCLK, int8_t CS, int8_t MISO) {
sclk = SCLK;
cs = CS;
miso = MISO;

//define pin modes
pinMode(cs, OUTPUT);
pinMode(sclk, OUTPUT);
pinMode(miso, INPUT);

digitalWrite(cs, HIGH);
}
double MAX6675::readCelsius(void) {

uint16_t v;

digitalWrite(cs, LOW);
_delay_ms(1);

v = spiread();
v <<= 8;
v |= spiread();

digitalWrite(cs, HIGH);

if (v & 0x4) {
// uh oh, no thermocouple attached!
return NAN;
//return -100;
}

v >>= 3;
return v*0.25;
}

double MAX6675::readFahrenheit(void) {
return readCelsius() * 9.0/5.0 + 32;
}

byte MAX6675::spiread(void) {
int i;
byte d = 0;

for (i=7; i>=0; i–)
{
digitalWrite(sclk, LOW);
_delay_ms(1);
if (digitalRead(miso)) {
//set the bit to 0 no matter what
d |= (1 << i);
}

digitalWrite(sclk, HIGH);
_delay_ms(1);
}

return d;
}

If this is the code you are referring to:

if (v & 0x4) {

you need to read up on the & operator.
https://www.arduino.cc/en/Reference/BitwiseAnd

  return readCelsius() * 9.0/5.0 + 32;

This calls a function to get a value, and then does some multiplication, division, and addition to transform that value, and then returns the transformed value.