int and unsigned int

Why are you looking at it in binary in the first place?

Who wants to see RPM in binary?

Because i don't have a shift register at the moment so i was using the serial monitor to to show me what the output / effect would look like if i did send the information to a shift register. 1 = LED on and 0 = LED off and i will have 16 LED's.

[And how did you manage to get negative RPM?
It's not clear to me what the "correct" method of displaying a negative number in binary would be, or whether it would be worth the special case code to limit the binary display to 16bits for an "int."

It's not a negative number because my variable is a unsigned int / word and they don't hold negative numbers according to the reference section. If i set my variable Display_RPM to an int and display the created value in the serial monitor, then i get a negative number. If i set my variable to unsigned int/word then i get a positive number and that is what i want.

#define pin A0 //Pot connected for testing.

byte temp;
unsigned int Display_RPM;
unsigned int result;

void setup() {
  Serial.begin(9600);
}

void loop()
{
  result = map(analogRead(pin), 0, 1024, 0, 8000); //Maps the pot value to simulate RPM value.

  temp = result/1000;
  Display_RPM = ~((1 << (16 - temp))-1) | ((1 << temp)-1);
  Serial.println(Display_RPM, BIN);
  Serial.println(Display_RPM);
  delay(900);
}

1 = LED on, 0 + LED off
below is what i think i would see on a 16bit shift register when i buy one.

1000rpm = 1000000000000001
2000rpm = 1100000000000011
3000rpm = 1110000000000111
4000rpm = 1111000000001111
5000rpm = 1111100000011111
6000rpm = 1111110000111111
7000rpm = 1111111001111111
8000rpm = 1111111111111111

Does that explain everything now.