자리수 제한 없는 수를 컴퓨터로 입력하기?
- 프로그래밍/자료구조&알고리즘
- 2011. 3. 22. 16:33
오늘 자료구조 공부하면서 상당히 흥미로운 것을 발견했다.
우리가 일반적으로 사용하는 int char 같은 기본 자료형은 표현할 수 있는 수가 4바이트, 1바이트... 이런식으로 지정되있다.
그렇다면 1조같은 수가 입력되면 어떻게 처리되야되야할까?!?!
당연히 int같은 자료형을 쓰면 에러가 난다.
그렇다면 어떻게할까??!?!
답은 여러가지가 존재할 수 있겠지만
이렇게 처리하는것이 좋다
=>>>
1. 컴퓨터상은 어짜피 2진수가 길게 늘여진 모습이니까 2진수를 4자리씩 나누면 16진수가 된다.
2. 이렇게 나누어진 16진수를 10진수로 변환을 해준다!!! ( 16진수 -> 10진수 )
3. 나누어진 수를 10진수 배열에 하나씩 넣는다.
그렇다면 연산은 어떻게 할까?
=>>>
1. 컴퓨터상은 어짜피 2진수가 길게 늘여진 모습이니까 2진수를 4자리씩 나누면 16진수가 된다.
2. 이렇게 나누어진 16진수를 10진수로 변환을 해준다!!! ( 16진수 -> 10진수 )
3. 나누어진 수를 10진수 배열에 하나씩 넣는다.
4. 배열인덱스 끼리 10진수 계산을 해준다.
5. 이때 발생된 캐리는 다음 배열에 영향을 준다
-> tip))) +,-,*,/에 대해서 계산이 다다르다.
6. 배열을 다시 16진수로 바꿈
7. 컴퓨터에 출력
이것은 아는사람의 발표자료 ㅎㅎ
많은 도움이 되었다. ㅎㅎㅎ
소스도 곧 추가할 예정이다.
우리가 일반적으로 사용하는 int char 같은 기본 자료형은 표현할 수 있는 수가 4바이트, 1바이트... 이런식으로 지정되있다.
그렇다면 1조같은 수가 입력되면 어떻게 처리되야되야할까?!?!
당연히 int같은 자료형을 쓰면 에러가 난다.
그렇다면 어떻게할까??!?!
답은 여러가지가 존재할 수 있겠지만
이렇게 처리하는것이 좋다
=>>>
1. 컴퓨터상은 어짜피 2진수가 길게 늘여진 모습이니까 2진수를 4자리씩 나누면 16진수가 된다.
2. 이렇게 나누어진 16진수를 10진수로 변환을 해준다!!! ( 16진수 -> 10진수 )
3. 나누어진 수를 10진수 배열에 하나씩 넣는다.
그렇다면 연산은 어떻게 할까?
=>>>
1. 컴퓨터상은 어짜피 2진수가 길게 늘여진 모습이니까 2진수를 4자리씩 나누면 16진수가 된다.
2. 이렇게 나누어진 16진수를 10진수로 변환을 해준다!!! ( 16진수 -> 10진수 )
3. 나누어진 수를 10진수 배열에 하나씩 넣는다.
4. 배열인덱스 끼리 10진수 계산을 해준다.
5. 이때 발생된 캐리는 다음 배열에 영향을 준다
-> tip))) +,-,*,/에 대해서 계산이 다다르다.
6. 배열을 다시 16진수로 바꿈
7. 컴퓨터에 출력
이것은 아는사람의 발표자료 ㅎㅎ
많은 도움이 되었다. ㅎㅎㅎ
소스도 곧 추가할 예정이다.
이 글을 공유하기