conversão de string unicode em python
Pergunta
Eu preciso converter strings unicode em Python para outros tipos, como não assinados e assinados int 8 bits, não assinados e assinados int 16 bits, não assinados e assinados int 32 bits, não assinados e assinados int 64 bits, double, float, string, sem sinal e sinal de 8 bits, sem sinal e sinal de 16 bit, sem sinal e sinal de 32 bit, sem sinal e sinal de 64 bits.
Eu preciso da ajuda de u pessoas.
Solução
int()
para converter a string para um inteiro. Python não têm diferentes números inteiros de largura fixa de forma que você só pegar um tipo de coisa fora.
Em seguida, use struct
para embalar o inteiro em uma largura fixa:
res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t
res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t
res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t
res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t
res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double
struct
produz um byte-cadeia que contém o número de binário.
EDIT:
A partir dos comentários parece que você só quer converter a string (de dígitos decimais) em um número inteiro. Basta usar int()
para isso, no entanto você não terá todos o estouro complicado / semântica underflow dos tipos especificados. Você não pode reproduzir isso em python, pelo menos não sem escrever um monte de código.
Eu acho que se você quiser mais ajuda você vai ter que ser mais preciso sobre o que você deseja alcançar.