낸드 게임 팬의 경우 : 논리 게이트에서 DPD를 10 진수로 시도하십시오 !
배경
밀도가 높은 10 진수 (DPD) 는 10 진수를 이진수로 효율적으로 저장하는 방법입니다. 10 비트에 3 개의 10 진수 (000 ~ 999)를 저장하는데, 이는 1 비트를 4 비트에 저장하는 순진 BCD보다 훨씬 효율적입니다.
표기법
- 소문자 문자
a
로는i
소수점 표현에 복사되는 비트입니다. 0
및1
상기 입력 또는 출력 비트 패턴의 정확한 비트이다.x
비트는 변환에서 무시됩니다.
변환 표
다음은 DPD의 10 비트에서 10 진수로의 변환 표입니다. 각 10 진수는 4 비트 이진 (BCD)으로 표시됩니다. 양쪽은 최상위 자릿수에서 가장 왼쪽으로 오른쪽에서 왼쪽으로 쓰여집니다.
Bits => Decimal (Digit range)
a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7)
a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9)
a b c g h f 1 0 1 i => 0abc 100f 0ghi (0–7) (8–9) (0–7)
g h c d e f 1 1 0 i => 100c 0def 0ghi (8–9) (0–7) (0–7)
g h c 0 0 f 1 1 1 i => 100c 100f 0ghi (8–9) (8–9) (0–7)
d e c 0 1 f 1 1 1 i => 100c 0def 100i (8–9) (0–7) (8–9)
a b c 1 0 f 1 1 1 i => 0abc 100f 100i (0–7) (8–9) (8–9)
x x c 1 1 f 1 1 1 i => 100c 100f 100i (8–9) (8–9) (8–9)
태스크
DPD 10 비트를 소수점 3 자리로 변환합니다.
테스트 사례
DPD Decimal
0000000101 005
0001100011 063
0001111001 079
0000011010 090
0001011110 098
1010111010 592
0011001101 941
1100111111 879
1110001110 986
0011111111 999
1111111111 999 * Output is same regardless of the `x` bits
입력
기본 입력 형식은 10 비트 목록입니다. 비트는 위의 정확한 순서 또는 그 반대 순서를 따라야합니다. 대신 동등한 문자열 또는 정수 표현을 사용하도록 선택할 수 있습니다. 다른 과제와 달리 중첩 구조를 재정렬하거나 사용하는 것은 허용되지 않습니다 .
입력 [1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
의 경우 다음 형식이 허용됩니다.
- 비트리스트 :
[1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
- 끈:
"1100010100"
- 이진 정수 :
788
또는0b1100010100
- 십진 정수 :
1100010100
- 역전 :
[0, 0, 1, 0, 1, 0, 0, 0, 1, 1]
위의 다른 형식으로 역전
다음 형식은 허용되지 않습니다 :
- 비트의 임의 순서 변경 :
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1]
- 중첩 구조 :
[[1, 1, 0], [0, 0, 1], [0, 1, 0, 0]]
또는[0b110, 0b001, 0b0100]
산출
기본 출력 형식은 3 자리 10 진수 목록입니다. 각 숫자는 0에서 9까지의 정수 또는 문자로 표시되어야합니다. 입력에서와 같이 문자열 또는 정수 표현을 선택할 수 있습니다. 정수 표현을 선택하면 선행 0을 생략 할 수 있습니다.
득점 및 당첨 기준
표준 코드 골프 규칙이 적용됩니다. 각 언어마다 가장 짧은 프로그램이나 함수가 바이트 단위로 표시됩니다.