파이썬에서 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 등은 리틀 엔디안이구요.

    엔디안을 모른다면...다른 서적을 참고해보세요. 질문과 너무 벗어나는군요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)