Đối với người hâm mộ nandgame: Vui lòng thử DPD để thập phân trong các cổng logic !
Lý lịch
Mật độ thập phân dày đặc (DPD) là một cách hiệu quả để lưu trữ hiệu quả các chữ số thập phân ở dạng nhị phân. Nó lưu trữ ba chữ số thập phân (000 đến 999) trong 10 bit, hiệu quả hơn nhiều so với BCD ngây thơ (lưu trữ một chữ số trong 4 bit).
Ký hiệu
- Các chữ thường
a
đểi
là các bit được sao chép vào các đại diện thập phân. 0
và1
là các bit chính xác trong các mẫu bit đầu vào hoặc đầu ra.x
bit được bỏ qua trong chuyển đổi.
Bảng chuyển đổi
Sau đây là bảng chuyển đổi từ 10 bit DPD thành ba chữ số thập phân. Mỗi chữ số thập phân được biểu diễn dưới dạng nhị phân 4 bit (BCD). Cả hai bên được viết từ trái sang phải từ chữ số có nghĩa nhất đến ít nhất.
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)
Bài tập
Chuyển đổi 10 bit DPD thành 3 chữ số thập phân.
Các trường hợp thử nghiệm
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
Đầu vào
Định dạng đầu vào mặc định là danh sách 10 bit. Các bit nên theo thứ tự chính xác ở trên, hoặc ngược lại của nó. Bạn có thể chọn sử dụng một đại diện chuỗi hoặc số nguyên tương đương. Không giống như những thách thức khác của tôi, không được phép sắp xếp lại hoặc sử dụng các cấu trúc lồng nhau .
Đối với đầu vào [1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
, các định dạng sau được cho phép:
- Danh sách các bit:
[1, 1, 0, 0, 0, 1, 0, 1, 0, 0]
- Chuỗi:
"1100010100"
- Số nguyên nhị phân:
788
hoặc0b1100010100
- Số nguyên thập phân:
1100010100
- Đảo ngược:
[0, 0, 1, 0, 1, 0, 0, 0, 1, 1]
và đảo ngược ở bất kỳ định dạng nào khác ở trên
Các định dạng sau KHÔNG được phép:
- Sắp xếp lại tùy ý các bit:
[0, 0, 0, 0, 0, 1, 1, 1, 0, 1]
- Cấu trúc lồng nhau:
[[1, 1, 0], [0, 0, 1], [0, 1, 0, 0]]
hoặc[0b110, 0b001, 0b0100]
Đầu ra
Định dạng đầu ra mặc định là danh sách gồm 3 chữ số thập phân. Mỗi chữ số phải được biểu diễn từ 0 đến 9, là số nguyên hoặc ký tự. Như trong đầu vào, bạn có thể chọn biểu diễn chuỗi hoặc số nguyên. Nếu bạn chọn biểu diễn số nguyên, các số 0 đứng đầu có thể được bỏ qua.
Ghi điểm & tiêu chí chiến thắng
Luật golf tiêu chuẩn được áp dụng. Chương trình hoặc hàm ngắn nhất tính theo byte cho mỗi ngôn ngữ sẽ thắng.