Jason
Jason

Reputation: 911

Python string to integer value

I'd like to know how to convert strings in Python to their corresponding integer values, like so:

>>>print WhateverFunctionDoesThis('\x41\x42')

>>>16706

I've searched around but haven't been able to find an easy way to do this.

Thank you.

Upvotes: 1

Views: 772

Answers (3)

mykhal
mykhal

Reputation: 19924

ugly way:

>>> s = '\x41\x42'
>>> sum([ord(x)*256**(len(s)-i-1) for i,x in enumerate(s)])
16706

or

>>> sum([ord(x)*256**i for i,x in enumerate(reversed(s))])

Upvotes: 0

Kane
Kane

Reputation: 13

If '\x41\x42' is 16-based num, like AB. You can use string to convert it.

import string

agaga = '\x41\x42'
string.atoi(agaga, 16)
>>> 171

Sorry if i got you wrong...

Upvotes: 0

John La Rooy
John La Rooy

Reputation: 304413

>>> import struct
>>> struct.unpack(">h",'\x41\x42')
(16706,)
>>> struct.unpack(">h",'\x41\x42')[0]
16706

For other format chars see the documentation

Upvotes: 7

Related Questions