티스토리 뷰

 

1. int를 binary로 변환

int형 데이터를 binary로 바꾸려면 bitset을 사용한다.

bitset를 사용하기 위해서는 <bitset> 헤더를 추가해준다.

그리고 bitset<변환할bit수>(int형변수명) 과 같이 써줌으로써 binary로 변환할 수 있다.

예를 들어, int num=17일 때, bitset<8>(num)을 해주면 8bit의 00010001으로 변환이 된다.

 

2. binary를 int로 변환

binary를 int로 변환하려면 strtol 함수를 사용한다. strtol 함수는 <cstdlib> 에 선언되어 있다.

나의 경우 파일로부터 파일로부터 binary 데이터를 읽어와 이를 char*형 배열에 저장하고, 이 배열의 값을 int형으로 변환하였다. 

// 사용 예제
ifstream fin("example.txt", ios::binary);	// binary 파일 읽어옴
char buffer[10] = { 0, };

fin.read(buffer, 8);	// 파일로부터 8bit를 읽어와 buffer에 저장
int convert = strtol(buffer, NULL, 2);	// buffer의 binary 데이터를 int로 변환

strtol 함수의 매개변수에는 차례대로 char*형 배열과 NULL, 그리고 binary이므로 radix=2를 전달해준다.

반응형

댓글