Q&A

  • [다시질문]숫자의 범위가 매우클때
만약 주어진 숫자가 cardinal(32비트 부호없는 수)형을 벗어나는 숫자를 처리해야 한다고 할때우리는 그 숫자를 배열을 사용해 여러 배열에 나누어 저장을 해야 될것 같습니다.만약 주어진 숫자가 123456789012345678901234567890의 경우라면 어떻게 각 배열에 나누어 넣어야지 나중에 그숫자를 가지고 연산을 시작할때 그숫자의 의미(값)을 그대로 간직한체 연산을 할 수 있을까요..

한번 모두 생각해봅시다.. 글을 좀 남겨주세용..



1  COMMENTS
  • Profile
    초보2 2000.04.25 07:00
    병규 wrote:

    > 만약 주어진 숫자가 cardinal(32비트 부호없는 수)형을 벗어나는 숫자를 처리해야 한다고 할때우리는 그 숫자를 배열을 사용해 여러 배열에 나누어 저장을 해야 될것 같습니다.만약 주어진 숫자가 123456789012345678901234567890의 경우라면 어떻게 각 배열에 나누어 넣어야지 나중에 그숫자를 가지고 연산을 시작할때 그숫자의 의미(값)을 그대로 간직한체 연산을 할 수 있을까요..

    > 한번 모두 생각해봅시다.. 글을 좀 남겨주세용..

    >



    안녕하세요~ 초보2입니다. 고수가 아니라 실망하셨다구영? 에궁~



    286은 16bit컴퓨터입니다. CPU가 16bit라는건 한번에 16bit 연산을 할수 있다 라고

    정의를 내릴수 있습니다.(음.. 제나름대로) 16bit면 0 ~ 65535 범위를 갖는데...

    물론 286컴으로도 16bit보다 더 큰수를 계산했었지요...

    어떻게 했을까요? 그 방법이 곧 문제의 답입니다.

    어셈블리에 관한 책을 보시면 이에관한 해결법을 찾을수 있습니다.

    어셈블리에선 기본 기술 이니까요...



    어떻게 배열에 나누느냐고 하셨는데 당연히 n byte 단위입니다.

    가령 12345678 을 1byte 단위로 나누면 188, 97, 78 입니다.



    다시 복원하려면 188*256*256 + 97*256 + 78 = 12345678 이 됩니다.