파이썬에서 유니코드 문자열 변환
문제
Python의 유니코드 문자열을 unsigned 및 signed int 8비트, unsigned 및 signed int 16비트, unsigned 및 signed int 32비트, unsigned 및 signed int 64비트, double, float, string, unsigned 및 signed와 같은 다른 유형으로 변환해야 합니다. 8비트, 무부호 및 부호 있는 16비트, 무부호 및 부호 있는 32비트, 무부호 및 부호 있는 64비트.
여러분의 도움이 필요합니다.
해결책
사용 int()
문자열을 정수로 변환합니다.Python에는 다양한 고정 너비 정수가 없으므로 한 가지 유형만 얻을 수 있습니다.
그런 다음 사용 struct
정수를 고정 너비로 압축하려면 다음을 수행하십시오.
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
이진수를 포함하는 바이트 문자열을 생성합니다.
편집하다:주석을 보면 문자열(십진수)을 정수로 변환하려는 것처럼 들립니다.그냥 사용 int()
그러나 이를 위해 지정된 유형의 복잡한 오버플로/언더플로 의미를 모두 얻을 수는 없습니다.적어도 많은 코드를 작성하지 않고는 파이썬에서 이를 재현할 수 없습니다.
더 많은 도움을 원한다면 달성하려는 것이 무엇인지 더 정확하게 설명해야 할 것 같습니다.
제휴하지 않습니다 StackOverflow