Deklarowanie zmiennej jako szesnastkowej w Pythonie

Jan 12 2021

Mam zmienną

s=64

Ta zmienna jest zapisana szesnastkowo. Ale Python traktuje to jako liczbę dziesiętną. Jak zadeklarować to jako zmienną szesnastkową?

Wiem, aby zadeklarować coś jako hex, używamy

s=0x64

Ale mam tylko

s=64

Jak mam się do tego zabrać?

Odpowiedzi

GalBirka Jan 12 2021 at 16:56

Liczba 64szesnastkowa (podstawa 16) to 100. Aby uzyskać odpowiedź, powinieneś użyć kombinacji hex () , int () i str () Jeśli zaczynasz od s = 64i chcesz na końcu, na s = 100którym jest wartość dziesiętna 0x64, rozważ następujący kod:

s = 64
s = int(str(s), 16)

Jeśli chcesz czegoś innego, wyjaśnij, co i pamiętaj, że możesz spróbować to osiągnąć samodzielnie, używając kombinacji hex (), int () i str ()

1 J_Zar Jan 12 2021 at 16:55

Myślę, że czegoś brakuje w twojej teorii kodu lub pytaniu.

Jedna rzecz to wartość, a druga to prezentacja (interpretacja) . Więc wartość wynosi 100 (dziesiętnie), ale można ją zobaczyć ( przekonwertować ) jako dziesiętną lub szesnastkową (lub cokolwiek chcesz):

>>> s=0x64
>>> s
100
>>> hex(s)
'0x64'
>>> h = int(str(0x64), 16)
>>> h
256

Python przechowuje liczbę całkowitą jako ułamek dziesiętny (domyślnie). Jeśli chcesz mieć liczbę działającą jako szesnastkowa, powinieneś zakodować własną klasę i użyć procedur konwersji, które pokazałem powyżej.