No, it doesn't matter. You're mixing the value of the data with it's internal representation. C generally only cares about the value of the data. In terms of arithmetic/logical operations, it's always treated in big-endian order, that is MSB...LSB. So if you shift right one place, you shift off the LSB. Shifting left one place shifts off the MSB. Endianness is really only an issue when you are doing things like writing binary data to disk (via fwrite), or transmitting it across a network.