du solltest mal was über schleifen und bit-operationen in C nachlesen :-)

Code:
void zerlegen (unsigned long int wert) {
  int bit;

  for (bit = 0; bit < 32; bit++) {
    if(wert & 0x80000000)
      senden(1);
    else
      senden(0);
    wert <<= 1;
  }
}

void zerlegenempf (unsigned long int wert) {
  int aktion;
  unsigned long empf;

  aktion = (wert & 0xff000000) >> 24;
  empf = wert & 0xffffff;
}
"<<" und ">>" schieben einfach die bits nach links und rechts, "&" ist binäres AND.