타원과 스틱으로 인쇄 된 이진 값을 눈에 띄는 것은 그리 쉬운 일이 아닙니다.이를 돕기 위해서는 사용자 지정 이진 표현으로 숫자를 인쇄하는 함수 (또는 프로그램)를 작성해야합니다.
따라서 3 ( 00000011
)과 같은 숫자를 가져 와서 비트를 사용자 정의 형식으로 출력 하려고합니다 ( 예 : 공백으로 구분 된 쌍).
00 00 00 11
또는 반대로, 일부 데코레이터와 반대로, 예를 들어
11_00_00_00
또한 '0'과 '1'을 더 잘 구분하기 위해 사용자 지정 문자로 표시 할 수 있어야합니다. 예 :
XX oo oo oo
따라서 다음 사양과 함께 코드를 작성해야합니다.
사양
함수는 다음과 같은 입력을받습니다 : f (A, mask, zeros, ones)
매개 변수 :
A- 입력 번호-0-255 범위의 (부호없는) 정수
mask- 출력 구성을 정의하는 문자열 매개 변수입니다.
zeros- 길이가 같은 문자열로, 각 출력 슬롯에 대해 'zero'글리프를 정의합니다.
ones- 길이가 같은 문자열은 각 출력 슬롯에 대해 '하나'글리프를 정의합니다.
출력 구성 규칙 :
출력이 어떻게 생성되는지 이해하려면이 이미지를 예를 자세히 살펴보십시오.
따라서 마스크 의 단일 숫자 만 구문 분석되고 A의 해당 비트로 대체되고 다른 문자는 그대로 남아 있습니다 . 또한, 취해진 비트의 값이 1이면 최종 출력에 "X"로 표시되고 0이면 "o"로 표시됩니다. 위의 예에서 4 개의 촬영 비트는 모두 "1"이므로 모든 슬롯에 "X"가 표시됩니다.
입력 번호가 128 인 경우 논리적으로 출력은입니다 X foo bar ooo
. 매개 변수 "0"및 "1"의 문자 : 인쇄 가능한 ASCII 문자는 항상 마스크와 문자 정렬 된 것으로 가정합니다.
참고 사항 :
- 비트는 0으로 인덱싱됩니다. 0 번째 비트는 MSB입니다.
- 마스크 문자열에 숫자 8,9가 허용되지 않는다고 가정하십시오.
- 입력 문자열에는 인쇄 가능한 ASCII 문자가 포함됩니다.
- 'Zeros'와 'ones'는 마스크와 문자 정렬됩니다.
- 해당 언어의 특수 문자 / 수정 자 : 입력 문자열에 표시되지 않을 것이라고 가정 할 수 있습니다.
명확성을 위해 더 많은 예제를 참조하십시오.
입력-> 출력 예
일반적인 타원 및 스틱 표기법으로 공백 구분 기호를 사용하여 공통된 순서로 8 비트를 모두 출력합니다.
mask = "0123 4567"
zeros = "0000 0000"
ones = "1111 1111"
A=1 -> 0000 0001
대시 및 글리프 표기법으로 역순으로 출력 :
mask = "| 7654 3210 |"
zeros= " ---- ---- "
ones = " ssss ssss "
A=1 -> | s--- ---- |
A=3 -> | ss-- ---- |
A=128-> | ---- ---s |
하나의 출력에 다양한 표기법 (예 : 압축 된 데이터의 경우) :
mask = "0 | 123 4567"
zeros= " --- ----"
ones = "X kkk ssss"
A= 15 -> | --- ssss
A= 16 -> | --k ----
A= 32 -> | -k- ----
A= 128 -> X | --- ----
A= 255 -> X | kkk ssss
반복 패턴 :
mask = "| 7 66 555 4444 |"
zeros= " . .. ... .... "
ones = " 0 00 000 0000 "
A= 0 -> | . .. ... .... |
A= 1 -> | 0 .. ... .... |
A= 2 -> | . 00 ... .... |
A= 3 -> | 0 00 ... .... |
A= 4 -> | . .. 000 .... |
최신 정보
규칙은 약간 단순화되었습니다. 프로그램은 하나의 숫자 만 인쇄해야합니다 (처음 제안 된 배열 / 숫자 목록은 아님).
A
모든 테스트 사례에서 동일하기 때문에 무엇을 이해하지 못합니다