2009-04-28 6 views
2

파이썬에서 문자열의 길이를 얻은 다음 그 int를 바이트 배열로 변환하는 올바른 방법은 무엇입니까? 테스트를 위해이를 콘솔에 출력하는 올바른 방법은 무엇입니까? .NET을 사용IronPython - 바이트 배열로 int 변환

답변

1

:

byte[] buffer = System.BitConverter.GetBytes(string.Length) 
print System.BitConverter.ToString(buffer) 

헥스로서 출력 바이트 것이다. IronPython 구문을 정리해야 할 수도 있습니다.

+0

+1 감사합니다. 순수 파이썬 구문이 무엇인지 알았 으면 좋겠지 만 파이썬 3 문서를 계속 실행합니다. – BuddyJoe

3

struct을 사용하십시오.

import struct 

print struct.pack('L', len("some string")) # int to a (long) byte array 
+0

+1. 죄송합니다 후속 질문을 다음 긴 데이터 형식을 무제한입니다. http://docs.python.org/library/stdtypes.html 6 바이트에 저장하려면 값 (길이)이 필요합니다. 이것을 설명하는 가장 좋은 방법은 무엇입니까? 작은 수로 바이트를 채워야합니다. – BuddyJoe

+0

struct 모듈에서 사용하는 데이터 유형은 파이썬에서 사용 된 것과 동일하지 않습니다. 이 경우 'long'은 4 바이트입니다. 6 바이트는 정수의 이상한 길이이지만 struct.pack (' rmmh

+0

struct.pack에서 [ord (x)와 같은 것을하는 것이 더 좋지 않을까요? 'L', )]?이 코드를 사용하여 현재 에포크를 변환하면 'e0 \ xf1U'와 같은 문자열이 표시되고 ord를 사용하면 [100, 48, 241, 85]가 더 유용 해집니다. – parvus

관련 문제