how can I read a monitor input direct to a variable?

I guess this has a fairly simple answer, the reference page on this site has it wrong though.
I want to input a number up to 11111111 binary or 255 decimal in the monitor page so that it will be fed into a 595 shift register and light a row of leds in sympathy. The read command in Serial says Serial.read() returns the first byte of incoming serial data, in fact it returns the ASCII equivalent. I have produced my sketch below :-

const int dataPinout  =  8;   //595 pin 14
const int latchPinout =  9;  //595 pin 11
const int clockPinout = 10; //595 pin 12
int myinput;

void setup()
{
  Serial.begin(9600);
  pinMode(dataPinout,  OUTPUT);
  pinMode(latchPinout, OUTPUT);
  pinMode(clockPinout, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) 
  {
    myinput = Serial.read();
    Serial.println(myinput,BIN); 
  }
  digitalWrite  (latchPinout, LOW);//set output shift registers to receive serial data  
  shiftOut      (dataPinout, clockPinout, LSBFIRST, myinput); //Send data
  digitalWrite  (latchPinout, HIGH);//set output shift registers to drive leds
  delay (1000);
}

At this point it is just bare bones to try to get the shift register to work.
What instruction do I need to add the make the monitor input equal the variable myinput in my program?
Thanks.

The read command in Serial says Serial.read() returns the first byte of incoming serial data, in fact it returns the ASCII equivalent.

No. It returns the first byte. If the sending application is sending ASCII data, you can hardly expect the Arduino to know that, and automagically convert it to a byte-sized value.

What instruction do I need to add the make the monitor input equal the variable myinput in my program?

No instruction will do that. You need to understand which application is sending data (I don't, although I suspect that you mean the Serial Monitor), and how that application is sending data.

If the application is sending ASCII data, as the Serial Monitor does, you need to read and store the data (in a NULL terminated char array) until the end of packet marker, whatever that happens to be, arrives, and then convert the array to an int, using atoi().

If that sounds too complicated for you, despite a bazillion examples around, use Serial.parseInt().

I find your reply offensive. if you have nothing better to do than insult people then do us all a favour and go somewhere else.

If that sounds too complicated for you, despite a bazillion examples around, use Serial.parseInt().

I don't think I deserved that, you are supposed to be answering queries on this forum not insulting people.
As it happens I was looking for a solution, which I had been doing for most of the evening.
If I replace the line

myinput = Serial.read();

with

    myinput = Serial.parseInt();

I get what I want.
I don't think your comments were necessary and were definitely not welcome.