Πώς μετατρέπω μια δεκαεξαδική συμβολοσειρά σε int στην Python;
Μπορεί να το έχω ως "0xffff
" ή απλά "ffffff
".
Χωρίς το πρόθεμα 0x, πρέπει να καθορίσετε ρητά τη βάση, διαφορετικά δεν υπάρχει τρόπος να το καταλάβετε:
x = int("deadbeef", 16)
Με το πρόθεμα 0x, η Python μπορεί να διακρίνει το δεκαεξαδικό και το δεκαδικό αυτόματα.
>>> print int("0xdeadbeef", 0)
3735928559
>>> print int("10", 0)
10
(Πρέπει να καθορίσετε το 0
ως βάση για να επικαλεστείτε αυτή τη συμπεριφορά μαντεψιάς προθέματος- η παράλειψη της δεύτερης παραμέτρου σημαίνει να υποθέσετε τη βάση 10).
int(hexString, 16)
κάνει το κόλπο, και λειτουργεί με και χωρίς το πρόθεμα 0x:
>>> int("a", 16)
10
>>> int("0xa",16)
10
Για οποιαδήποτε δεδομένη συμβολοσειρά s:
int(s, 16)