To send a 10-bit analog value from A3 over Serial, I need to split the bits into two bytes on the first Arduino, and then recombine these bytes on the second Arduino. Below is my guess about what the code might look like.
I'm hoping you'll find it very simple to correct for me, into matching lines that actually work.
And of course, many THANKS!
byte lowByte, highBite;
int A3ValueToSend, A3ValueReceived ;
// Â Â Â Â Â Â Â *** get value *** Â
A3ValueToSend = analogRead(A3); Â
// Â Â Â Â *** split into two bytes ***
  lowByte  = (A3ValueToSend >> 2);
highByte = (A3ValueToSend << 8);
// Â *** (send the two bytes to other Arduino) ***
// Â Â Â *** Recombine the two bytes *** Â
A3ValueReceived = (lowByte << 2) + (highBytge  >> 8);
There are many ways, even a struct or union is possible.
Also Serial.print(A3ValueToSend) will work, but then the readable text is send.
Do you want to send the binary data via Serial ? Or a readable text ?
The words 'lowByte' and 'highByte' are already in use for the functions, so I rather not make variables with the same name.
The previous poster is correct that there are many ways to solve this problem. If you are just looking for corrections to your code, however, you want to change this:
//Â Â Â Â *** split into two bytes ***
  lowByte = (A3ValueToSend >> 2);
  highByte = (A3ValueToSend << 8);
//Â Â Â *** Recombine the two bytes ***Â
A3ValueReceived = (lowByte << 2) + (highBytge >> 8);
To this:
//Â Â Â Â *** split into two bytes ***
  lowByte = (A3ValueToSend & 0xff);
  highByte = ((A3ValueToSend >> 8) & 0xff);
//Â Â Â *** Recombine the two bytes ***Â
A3ValueReceived = ((int)highByte << 8) + lowByte;
For example if your 10 bit value was 0x345, then lowByte will be 0x45 (0x345 & 0xff) and highByte will be 0x3 ((0x345 >> 8) & 0xff).