Why does padding add zeros to left, but left align adds zeros to right when performing bit manipulation?

finlaydotweber
0
0

I am not sure if this is a general bit manipulation related question or something specific to Ethereum. But I am reading a part of the ethereum specification here and I am confused by the bit related operations.

For instance, in the Example section a uint32 value of 69 padded to 32 bytes became 0x0000000000000000000000000000000000000000000000000000000000000045.

This I understand. Turn 69 to hex, which is 45 then pad it with 30 zeros.

But a value of "abc" after being left aligned became 0x6162630000000000000000000000000000000000000000000000000000000000

Now I am confused.

Why is it that the zeros here are added to the right? I understand where the 0x616263 comes from, which is the hex representation of "abc". But when padding the hex representation of 69 above, the zeros were added on the left, but with "abc" the zeros are being added on the right side. Why is this the case?