Beginner questions: Using the MCP4261 library

Update...
So, I can get the LSB if I brute-force the method as below..
But I would rather use the SPI library, as I suspect that it is more efficient than this approach.
BTW, as you can see, this is just a quick test with the Pot addrs and cmd hard coded into the commandbits parameter.

    Serial.println("***********readWiper1 brut force******************");
     //set pin modes 
     pinMode(DIGIPOT1_CS, OUTPUT); 
     pinMode(DATAOUT, OUTPUT); 
     pinMode(DATAIN, INPUT); 
     pinMode(SPICLOCK, OUTPUT); 
     //disable device to start with 
     digitalWrite(DIGIPOT1_CS,HIGH); 
     digitalWrite(DATAOUT,LOW); 
     digitalWrite(SPICLOCK,LOW); 
    
    digitalWrite(DIGIPOT1_CS,LOW); //Enable Pot1
    byte commandbits = B00011100; //command bits - XXXX address, YY cmd, ZZ Error & data
    for (int i=7; i>=0; i--){
      digitalWrite(DATAOUT,(unsigned int)commandbits>>i);
      //cycle clock
      digitalWrite(SPICLOCK,HIGH);
      digitalWrite(SPICLOCK,LOW);    
    }
    byte ReadPotValue = 0b00000000;
    for (int i=7; i>=0; i--){
      ReadPotValue += digitalRead(DATAIN)<<i;
      //cycle clock
      digitalWrite(SPICLOCK,HIGH);
      digitalWrite(SPICLOCK,LOW);    
    }
    Serial.print("ReadPotValue = ");
    Serial.println(ReadPotValue, BIN);
    Serial.print("ReadPotValue = ");
    Serial.println(ReadPotValue);

But, I would still like to know why SPI.transfer() return parameter returns a value that is shifted right 1 bit and removes the LSB.

Any thoughts?

Thanks,