2016-10-04 2 views

답변

1

알고리즘을 사용합니다 (코드도 제공 하겠지만 프로그래밍의 즐거움을 놓치지 않으려 고합니다). (int 21h, ah = 0Ah를 사용하여) 이진수를 문자열로 캡처 한 다음 문자 집합을 오른쪽에서 왼쪽 왼쪽에서 그룹으로 가져옵니다 (예 : 레지스터로 SI를 포인터로, CX를 a로 사용). 카운터), 각 그룹은 하나의 16 진수입니다.이 숫자는 다른 문자열에 저장합니다 (오른쪽에서 왼쪽). 예 :

10 1010 1011 0111 ◄ BINARY 
2 A B 7  ◄ HEX 

비트 오른쪽에서 왼쪽 계산 기억, 각각의 그룹은 16 진수 바이너리로 변환하는 하나 개의 절차를 requiere 것,이 둘의 힘에 각 이진 문자 값을 제공하는 방법입니다

1011 
│││└─ 2^0 = 1 ─┐ 
││└── 2^1 = 2 │ 1+2+8 = 11 (B hex digit) 
│└─── 2^2 = 4 │ Notice 4 is ignored because its bin character is zero. 
└──── 2^3 = 8 ─┘ 

4 자 그룹 만 갖고 있기 때문에 각 문자 위로 걸어서 절차를 수행 할 필요가 없으며 "1"이면 적절한 값 (1, 2, 4, 8), 0이면 무시하십시오.

마지막 홀수 그룹을 처리하는 짝수 그룹에 대해 작업을 수행하면 마지막 그룹이 홀수 일 수 있습니다.

+0

@RomDitkovsky,이 답변을 구현하려고 시도하십시오. 어떤 점에서 어려움을 겪고 돌아와서 ** 귀하의 질문 **을 귀하의 코드 **로 업데이트하면 해결할 수 있도록 도와 드리겠습니다. –

관련 문제