Data Shift problem for Q6 & Q7 (starting from Q0) while using the 4094 I.C with a Micro-controller
What you are seeing is the difference between MSB first and LSB first serial.

The HEF4094 expects the data to be shifted in MSB first - that is bit 7 is the first data bit sent to it. 

However your code is shifting data out LSB first. Notice that Data &amp; 0x01 extracts the LSB, and Data = Data &gt;&gt; 1; shifts the next LSB down to be sent.

To convert your code to MSB first, it's a simple task of changing those two lines to Data &amp; 0x80 (extract MSB) and Data = Data &lt;&lt; 1; (shift next MSB up).