send 'unsigned long' with Wire.write

A poster gives a meaningful title to his Thread so that it easily attracts the attentions of passers by. Your title, to me, is good enough!

Then comes the post where you describe your problem with clarity and brevity; unfortunately, you have not told anything in your post about your problem

Yes you're right.. I'm sorry for the poor description of my problem..
thanks for your reply, It did clarify a lot if things for me.

this is my Code:

#include <Wire.h>
#define WireDevice 8
#include "rdm630.h"

rdm630 rfid(6, 0);  

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


void loop() {
  
     byte data[6];
    byte length;
  unsigned long result;
    if(rfid.available() > 0){
        rfid.getData(data,length);

        //concatenate the bytes in the data array to one long which can be 
        //rendered as a decimal number
         result = 
          ((unsigned long int)data[1]<<24) + 
          ((unsigned long int)data[2]<<16) + 
          ((unsigned long int)data[3]<<8) + 
          data[4];              

       if(result != 0) Serial.println(result);
    }


        Wire.beginTransmission(WireDevice);     
        Wire.write(result);
        Wire.endTransmission();    

 delay(100);
}

(1) Use of union data structure.

I saw a couple of examples on union.. i wish u would give me ur example about it.

(2) Use of cast:

unsigned long x = 0x12345678;

byte x1 = (byte)(x>>24);                        //x1 = 0x12
byte x2 = (byte)((x>>16)&0x000000FF);  //x2 = 0x34
..........................

do u have any example of this? how can I send and receive this chunks?

Thanks in advance