Bitshifting bytes to form a long var fails!

How about this:

  struct NewType{
    char z;
    char a;
    char b;
    char c;
  };
  
  union NewUnion{
    NewType n_T;
    unsigned long l;
  };
  
void setup ()
{
  Serial.begin(115200); 
}  
void loop ()
{
  byte a = 0x0F;
  byte b = 0x0E;
  byte c = 0x0C;
  byte d = 0x0D;
  byte e = 0x0A;

  NewUnion aa = {{ ( d << 4 ) | e, ( b << 4 ) | c, a, 0 }};
  Serial.println (aa.l, HEX); 
 }

2,166 bytes now compared to previous 2,260 bytes

Bad choice of names, I know, just rushing

EDIT: added extra {} to drop warning.