https://github.com/jaytwolab/bitarray
bit-level data manipulation and management for C++ and Python :kr: C++와 파이썬이 지원되는 비트 단위 데이터 조작 및 관리
https://github.com/jaytwolab/bitarray
Last synced: 6 months ago
JSON representation
bit-level data manipulation and management for C++ and Python :kr: C++와 파이썬이 지원되는 비트 단위 데이터 조작 및 관리
- Host: GitHub
- URL: https://github.com/jaytwolab/bitarray
- Owner: JayTwoLab
- License: mit
- Created: 2024-11-25T07:05:18.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-16T11:49:08.000Z (6 months ago)
- Last Synced: 2025-07-28T22:00:47.635Z (6 months ago)
- Language: C++
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.ko.md
- License: LICENSE
Awesome Lists containing this project
README
# `BitArray`
> *Read this in other languages: [English](README.md), :kr: [Korean](README.ko.md)
`BitArray`는 **비트 단위 데이터 조작 및 관리**를 위한 경량 클래스 입니다.
**C++** 및 **Python** 두 언어로 구현되어 있으며, 네트워크, 데이터 압축, 바이너리 분석 등의 분야에서 활용 가능합니다.
## 📁 프로젝트 구조
```
BitArray-main/
├── cpp/ # C++ 구현
│ ├── main.cpp
│ └── README.md
├── python/ # Python 구현
│ ├── BitArray.py
│ └── README.md
├── README.md # 프로젝트 소개 문서
├── LICENSE
└── .gitignore
```
---
## 💡 기능 요약
| 기능 | 설명 |
|---------------|----------------------------------------------------------------------|
| 비트 초기화 | 바이트 배열 또는 비트 크기를 기반으로 비트 배열 생성 |
| 비트 추출 | 특정 오프셋과 길이에 따라 부분 비트 배열 추출 |
| 비트 병합 | 다른 비트 배열을 지정 위치에 병합 가능 |
| 비트 연산 | `+`, `<<`, `>>` 연산자 지원 |
| 비트 반전 | 비트 순서를 역으로 뒤집는 `reverser()` 지원 |
| 시각화 | 사람이 읽기 쉬운 형식으로 비트 출력 (`print`, `dump`) |
| 유닛 테스트 | 다양한 연산에 대한 테스트 코드 포함 |
---
## 🧠 언어별 구현
### ✅ C++
- 구현 파일: `cpp/`
- 주요 클래스: `BitArray`
- STL 기반 고성능 구현
- 단위 테스트 포함 (main.cpp)
- 주요 특징:
- `std::vector` 기반 저장
- `get`, `merge`, `toArray`, `dump` 등 다양한 비트 처리 메서드 제공
📄 자세한 내용: [`cpp/README.ko.md`](cpp/README.ko.md)
---
### ✅ Python
- 구현 파일: `python/`
- 주요 클래스: `BitArray`
- 파이썬 리스트와 비트 조작을 통한 구현
- 주요 특징:
- 비트 배열 병합 및 추출
- `to_array`, `to_int_array`, `reverser`, `__add__`, `__rshift__`, `__lshift__` 지원
- 단위 테스트 함수 포함
📄 자세한 내용: [`python/README.ko.md`](python/README.ko.md)
---
## 🔬 사용 예시
### C++ 예시
```cpp
BitArray a({0b11000000}, 3);
a.print(); // 출력: 110
BitArray b({0b01000000}, 2);
auto c = a + b;
c.print(); // 출력: 11001
```
### Python 예시
```python
bit_array = BitArray([0b11000000], 8)
bit_array.print() # 출력: 1100 0000
sub_array = bit_array.get(2, 3)
sub_array.print() # 출력: 000
```
---
## 🔧 설치 및 실행
### C++
```bash
cd cpp
g++ main.cpp -std=c++17 -o bitarray
./bitarray
```
### Python
```bash
cd python
python3 BitArray.py # 내부에서 runTests() 실행 가능
```
---
## 🧪 테스트
각 구현에 단위 테스트 코드 포함되어 있어, 실행 시 기능이 정상 동작하는지 확인할 수 있습니다.
---
## 📜 라이선스
- MIT License
- https://github.com/JayTwoLab/BitArray