Big byte-order is like the usual decimal notation, but in base 256:
230 * 256**3 + 4 * 256**2 + 0 * 256**1 + 0 * 256**0 = 3859021824
just like
1234 = 1 * 10**3 + 2 * 10**2 + 3 * 10**1 + 4 * 10**0
For little byte-order, the order is reversed:
0 * 256**3 + 0 * 256**2 + 4 * 256**1 + 230 = 1254
Answer from cffs on Stack OverflowYou can treat it as an encoding (Python 2 specific):
>>> int('f483'.encode('hex'), 16)
1714698291
Or in Python 2 and Python 3:
>>> int(codecs.encode(b'f483', 'hex'), 16)
1714698291
The advantage is the string is not limited to a specific size assumption. The disadvantage is it is unsigned.
struct.unpack(">i","f483")[0]
maybe?
> means big-endian and i means signed 32 bit int
see also: https://docs.python.org/2/library/struct.html
Suppose I something like
s = "GW\x25\001"
How do I convert that string to bytes, interpreting the backslashes as escapes? In other words, the resulting byte array should be of length 4.
UPDATE: Hmmm, I was taking the string from sys.argv[1], which seems to complicate things and not make it turn out as expected. So I'm still not sure what the answer is.