파이썬에서 struct 모듈 사용 중 ">ll" 이게 무슨뜻인가요?!
조회수 1177회
파이썬 책에서
lbl_f = open("./mnist/" + name+ "-labels-idx1-ubyte","rb")
mag, lbl_count = struct.unpack(">ll", lbl_f.read(8))
이라는 구문을 봤습니다. 근데 ">ll" 이 무슨뜻인가요? 반대로 <ll 도 쓸수 있는건가요???
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
우선 struct 를 왜 사용하는 것인지 알 필요가 있습니다.
도움말을 보니
This module performs conversions between Python values and C structs represented as Python bytes objects.
파이썬과 c의 구조체사이에 변환을 수행한다고 합니다.
c에서 구조체라는 것이 일종의 틀로 메모리 주소를 구조체에 대입하면 그 주소부터 구조체 크기까지 덩어리로 사용할 수 있게 해줍니다.(쉽고 짧게 풀어쓰기 어렵네요...)
즉 파이썬에서 바이너리를 다룰 때 사용하는 것이 struct 모듈입니다.
> 기호는 빅엔디안 이고 l 은 unsigned int 입니다.
빅엔디안이면...대표적인 cpu가 ARM 이나 power cpu 같은 RISC 계열입니다.
인텔의 IA-32 등은 리틀 엔디안이구요.
엔디안을 모른다면...다른 서적을 참고해보세요. 질문과 너무 벗어나는군요.
댓글 입력