Procademy
-
File Packing [패킹 프로그램]Procademy 2017. 4. 24. 22:42
특정 파일을 최대 1000개까지 하나로 패킹하고다시 언패킹 할 수 있게 하는 프로그램 (압축률은 0%..) 구현하면서 파일 포인터에 대해서 조금 더 깊은 시야를 갖게 되었다. #include "packing.h" #define PACK_VERIFICATION 18 // 구현하면서 막혔던점 // fread에서 파일이 계속 안읽혔다. // 알고보니 getFileSize 함수에서 함수 길이를 알던 도중 포인터를 끝으로 보내고 // rewind를 하지않았다. int pack (char (* fileName)[128], size_t fileNum, char * packName) { int i; // 패킹 결과물 파일의 파일 포인터 FILE * fPack; // 패킹할 파일들의 파일 포인터 FILE * fFiles..
-
변수를 바이트 단위로 설정하기Procademy 2017. 4. 15. 11:22
unsigned int (32bit) 변수를 바이트 단위로 사용하기 - unsigned int 변수 = 0 초기값 가짐- 키보드로 1 ~ 4 의 바이트 위치를 입력 받고- 해당 위치에 넣을 데이터 0 ~ 255 를 입력 받음- 사용자가 입력한 바이트 위치에 해당 값을 넣음 - 데이터가 입력 되면 바이트 단위로 쪼개서 출력 & 4바이트 16진수 출력- 기존 데이터는 보존이 되어야 하며- 입력된 바이트 위치의 데이터는 기존 값을 지우고 넣음. * 특정 위치의 바이트를 0으로 설정하는 방법을 알아보던 중 '마스크' 라는 개념이 있다는 걸 알았다. * 바이트 단위로 데이터를 확인할 수 있는 멋진 함수를 찾았다. 코드 #include void setByte(unsigned int * number, int loca..
-
변수의 각 비트를 컨트롤 하기Procademy 2017. 4. 15. 09:51
unsigned short (16bit) 변수의 각 비트를 컨트롤 하기 - unsigned short 변수 = 0 으로 초기값 가짐. - 키보드로 1 ~ 16의 비트 자리 입력을 받음 - 1 / 0 을 사용자로부터 받아서 지정된 자리의 비트를 0 또는 1로 바꿔줌. - 다른 위치에 입력된 기존 데이터는 보존이 되어야 함 비트 연산자를 이용하여 각 자리의 비트를 1로 설정하거나, 0으로 제거하고, 토글시키거나, 확인할 수 있다. 비트를 1로 설정하기number |= 1