나는 숙제로 C++의 임의의 정수 라이브러리를 작성하고 있습니다. 10 진수^n에서 부호없는 int의 벡터로 내부적으로 표현했습니다. 여기서 n은 가능한 한 큰 값이고 단일 서명되지 않은 int 숫자에 맞습니다.인접하지 않은 내부 번호 표현에서의 비트 시프트
필자는이 선택을 공간, 성능 및 디지트 액세스 간의 트레이드 오프로 설정했습니다 (사람이 읽을 수있는 문자열로 변환 할 때 복잡성을 추가하지 않고 10 진수를 사용하는 것보다 훨씬 좋은 성능을 얻을 수 있음). 그래서 예를 들면
:
base1000000000은 (441243123,294967295) 2 자리 (콤마 구분)
유효한 시간 (441,243,123,294,967,295) 18 자리
UINT32[00,011,010 01,001,100 11,010,101와
내부 표현 11110011] [00010001 10010100 11010111 11111111]
과제를 완료하려면 구현해야합니다. 멘 트 비트 시프 팅 및 기타 비트 연산자. 내부 표현이있는 숫자의 경우 shift를 구현하는 것이 합리적입니까?
내부 표현의 모든 비트가 의미가 있도록 기본 2^n으로 변경해야합니까?