converting int or byte to ascii

Exactly! But not const 256. Any number with length up to 3. I.e. 1-999

I am posting below a two UNOs setup for communication over SUART-UART Ports. UNO-1 sends 3-digit integer ID using Intel-Hex Frame over SUART Port. UNO-2 receives the frame using UART Port; it extracts the ID number from the received frame, saves it in array, and shows it on Serial Monitor.

You may find it useful!
A: Connection Diagram between UNO-1 and UNO-2

Fig-1

B: Example ID 256 has been sent using in Intel-Hex Frame

Fig-2

C: Example ID has been received over Intel-Hex Frame

Fig-3

D: Transmitter (UNO-1) Codes

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); //SRX and STX of UNO-1
byte frameArray[9]; //totl 9-byte in the Intel-Hex Frame
byte dataArray[3] = {0x02,  0x05, 0x06}; //for id = 256

void setup() 
{
  Serial.begin(9600);             // Serial port to computer
  mySerial.begin(9600);               // Serial port to HC12
}

void loop() 
{  
  buildIntelHexFrame();     //INtel-hex Frame as byte
  sendIntelHexFrame();     //send Intel every digit of Frame as ASCII codes
  while(1)        //wait for ever
    ;
}

void sendIntelHexFrame()
{
   mySerial.write(frameArray[0]);       //send : start of frame
   Serial.print((char)frameArray[0]);
  
  for(int i = 1; i<9; i++)
  {
    byte x = frameArray[i];
    byte x1 = x;
    x1 = x1>>4;
    if (x1 <=9)
    {
      x1 = x1+0x30;
      mySerial.write(x1);
       Serial.write(x1);
    }
    else
    {
      mySerial.write(x1+0x37);
       Serial.write(x1+0x37);
    }
  //--------------------------------
    x = frameArray[i];
    x = x & 0x0F;
    if (x <=9)
    {
      x = x+0x30;
      mySerial.write(x);
       Serial.write(x);
    }
    else
    {
      mySerial.write(x+0x37);
       Serial.write(x+0x37);
    }
    
  } 
  Serial.println();
}


void buildIntelHexFrame() //Intel-Hex Frame (fields a, b, c, d, e, f)
{
  frameArray[0] = 0x3A; //field-a (:) Start of a of a frame
  frameArray[1] = 03;   //filed-b = number of information byte inn field-e
  frameArray[2] = 0x20; //field-c EEPROM buffer address - upper byte
  frameArray[3] = 0x00; //EEPROM bufferaddress - lower byte
  frameArray[4] = 0x00; //field-d Not End-of-File Marker (01 = EOF)
  //-------------------
  
  for (int i=5, j=0; i<8, j<3; i++, j++)//filed-e information byte 3
  {
    frameArray[i] =  dataArray[j];
  }
  frameArray[8] = chkSum();
}

byte chkSum()
{
  byte sum=0;
  for (int k = 1; k<8 ; k++)
  {
    sum += frameArray[k]; 
  }
  sum =~sum;
  sum++;
  return sum;
}

E: Received Side (UNO-2) Codes

//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(10, 11); //SRX and stx OF uno-2

bool flag = false;;  //Frame synchronizer has not come
byte frameArray[19];   //
byte x, y, y1;
int i = 0;
int j = 0;

byte idData[3];  //lower-most array elemnet contains lower-most byte

void setup()
{
  Serial.begin(9600);             // Serial port to computer
 //  mySerial.begin(9600);
}

void loop()
{
  if (i == 17) //complete frame is received 8-byte x 2 = 16 + extra post i++ = 17
  {
    buildAndShowIdNumber();  //nuumber in: z, p, and myData[] of union{}
    i = 0;
    flag = false;
    i = 0;
    j = 0;
  }

}

void buildAndShowIdNumber()
{
  Serial.println();//write(frameArray[18]);
  for (i = 9, j = 0; i < 15, j < 3; i++, j++)  //6-character 3-byte
  {
    y = frameArray[i];
    if (y < 0x41)
    {
      y = y & 0x0F;
      y = y << 4;
    }
    else
    {
      y = y - 0x37;
      y = y << 4;
    }
    //-------------------
    i = i + 1; //i++;
    y1 = frameArray[i];
    if (y1 < 0x41)
    {
      y1 = y1 & 0x0F;

    }
    else
    {
      y1 = y1 - 0x37;

    }
    //------------------------
    y = y | y1;      //byte formed 02 05 06
    idData[j] = y;   //received ID in idData[3] array as 02 05 06
  }
  Serial.print(idData[0]);
  Serial.print(idData[1]);
  Serial.print(idData[2]);
  Serial.println();
}


void serialEvent()
{
  if (flag == true)
  {
    while (Serial.available())
    { // UNO-2 has received rame synchronizer
      x = Serial.read();
      Serial.write(x);     // Send the data to Serial monitor
      frameArray[i] = x;    //save in array
      i++;                  //index remains incremented by 1
    }
  }

  else
  {
    byte s = Serial.read();
    if ( s != 0x3A)
    {
      flag = false;
    }
    else
    {
      if ( s == 0x3A)
      {
        Serial.write(s);
        flag = true;
        i++;                  //index incremented
      }
    }

  }
}

BTW: UNO-2 has used Hardware Serial (UART) Port. So, please remove the jumper wires from DPin-0 and DPin-1 while uploading sketch into UNO-2.