2012-11-26 4 views
1

16 비트 값이 하이 바이트 및 로우 바이트로 (그림 마이크로 컨트롤러에서) 저장되는 경우 어떻게 2로 나누는가? 어떻게 16 비트 숫자를 올바르게 회전시킬 수 있습니까?16 비트 값을 2로 나누기 [PIC 마이크로 컨트롤러]

감사합니다.

+1

bitshift를 사용할 수 있습니까? – tjameson

+0

죄송합니다. 방금 내 글을 수정했습니다. 네, 바로 회전 할 수 있지만 16 비트 숫자를 회전시키는 아이디어는 얻지 못합니다. – user1852232

답변

6

16 비트 수를 2로 나누는 것은 단일 비트로 오른쪽으로 시프트하는 것과 같습니다. *. 캐리 플래그를 지우고 캐리를 통해 상위 바이트를 오른쪽으로 회전 한 다음 캐리를 통해 하위 바이트를 오른쪽으로 회전합니다. 당신은 here에 대한 코드를 찾을 수 있습니다 홀수 번호는 2로 분할 할 때 0.5가 잘립니다 : 물론

LSR16 MACRO VAR16 
    BCF  STATUS, C  ; Clear carry 
    RRF  (VAR16)+1,F  ; Rotate high byte right 
    RRF  (VAR16),F  ; Rotate low byte right 
    ENDM 


*이 정수 부문이다.

+0

대단히 고마워. 문제가 있으면 다시 시도하고 돌아올 것입니다. – user1852232

+0

+1 홀수의 나누기를 언급합니다. – Jon

관련 문제