일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- CSS
- c언어
- 중학수학
- 디버깅
- 개발일기
- 정보처리기사실기
- 데이터분석
- JDBC
- 딥러닝
- 순환신경망
- 머신러닝
- 혼공머신
- ChatGPT
- 자바
- html/css
- JSP
- 데이터베이스
- JSP/Servlet
- 정보처리기사필기
- 연습문제
- 상속
- 컴퓨터구조
- 중학1-1
- SQL
- 자바 실습
- 컴퓨터비전
- 자바스크립트
- rnn
- 파이썬
- 자바스크립트심화
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
바이너리 데이터 다루기 - C로 만든 데이터 출력하기 본문
바이너리(이진) 데이터는 두 가지 상태만으로 나타내는 데이터로, 일반적으로 이진법에서는 0과 1로 두 상태를 표현한다. 이번 단원에서는 파이썬에서 C 구조체 바이러리 데이터를 사용하도록 하는 struct 모듈을 알아볼 것이다.
C로 만든 데이터를 출력하려면? - struct
struct는 C 언어로 만든 구조체 이진 데이터를 처리할 때 활용하는 모듈이다. C 구조체로 만들어진 파일을 읽거나 네트워크로 전달되는 C 구조체 이진 바이트를 파이썬에서 처리할 때 주로 사용한다.
다음은 구조체 데이터를 output 파일에 저장하는 C 프로그램으로, save_type은 double형 1개, int형 1개, char형 1개로 이루어진 구조체다.
이렇게 만들어진 바이너리 구조체 데이터(output 파일)를 파이썬으로 읽어 내용을 확인하려면 어떻게 프로그램을 만들어야 할까?
다음처럼 struct 모듈의 unpack() 함수를 사용하면 C 구조체 데이터를 쉽게 읽을 수 있다.
unpack() 함수의 첫 번째 인수 'diccc'는 double형 1개, int형 1개, char형 4개를 뜻한다. C 프로그램에서 save_type 구조체도 같은 형태로 이루져 있지만, unpack()은 구조체 전체 길이인 16바이트 크기에 맞게 설정해야 한다.
이 구조체의 길이가 16바이트인 이유는 C 구조체의 특징 때문으로, 가장 큰 double형의 크기 8바이트의 배수로 구조체의 길이가 결정되기 때문이다.
작성한 파이썬 프로그램을 실행하면 다음과 같은 결과값이 출력된다.
하지만 이런 오류가 계속 발생해서 코드를 실행하지는 못했다.
학습을 마치고
1시간 넘게 고민하고 연구했지만 이 코드는 실행시키지 못했다. 하지만 오류가 발생하는 걸 두려워해서는 개발자가 될 수 없다. 언젠가 이 문제도 반드시 해결할 수 있으리라 본다.
오늘은 그냥 넘어가려고 한다.
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
다양한 데이터 다루기 2 - 자료형 넣고 빼기 및 이름 붙이기, 사용한 단어의 개수 구하기 (0) | 2024.10.05 |
---|---|
다양한 데이터 다루기 1 - 날짜 계산하고 요일 알아내기 및 두 날짜의 차이, 윤년 판별하기 (0) | 2024.10.05 |
텍스트 다루기 - 문자열 줄여 표시하기 및 긴 문장 줄 바꿈 그리고 정규 표현식에 대하여 (0) | 2024.10.05 |
정규 표현식 2 - 정규 표현식 시작하기 (0) | 2024.10.05 |
정규 표현식 1 - 정규 표현식 살펴보기 (0) | 2024.10.05 |