Bitshifting bytes to form a long var fails!

            addr.nybble.a1 = e;

addr.nybble.a2 = d;
            addr.nybble.b1 = c;
            addr.nybble.b2 = b;
            addr.nybble.c1 = a;
            addr.nybble.c2 = 0x0;
            addr.nybble.d1 = 0x0;
            addr.nybble.d2 = 0x0; // */

How is all this defined? nybble for example?

Use code tags please, not quotes. Post the full code (something that compiles), and post your output.

I think I've mentioned twice already that saying "it doesn't work" is not helpful. Post your output and explain what you expect to see, and how it differs from what you actually see.