티스토리 뷰
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를 전달해준다.
반응형
'C, C++' 카테고리의 다른 글
[C] 파일 입출력 함수 정리 (0) | 2021.01.08 |
---|---|
[C언어] LCS-LENGTH Top-down Memoization (0) | 2020.11.19 |
[C++] 10진수를 16진수로 변환하기 (0) | 2020.05.16 |
[C] 숫자 형태의 문자열을 8진수로 변환하기 (0) | 2020.05.04 |
[C, C++] raw 파일 읽고 쓰기, 역상으로 변환하기 (0) | 2020.04.15 |
댓글