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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top