11.9.14 ~ 15 사이에
기본형으로부터의 생성 / 변환 부분에 많은 변화가 생겼습니다.
우선 explicit 지시어를 사용하여
암시적 형변환을 금지하였지만
해제하였습니다.
따라서, BigInteger a=3;
과 같이도 만들 수 있습니다.
또한 변환 함수 부분에 있었던 맘에 안들었던 부분도 수정하였습니다.
생성부분에는
보조함수 ConversionAssist1,2가 있습니다.
ConversionAssist1은 unsigned형으로부터 생성시 사용하며
ConversionAssist2는 signed형으로부터 생성시 사용합니다.
char, short, long, int는 모두 4바이트로 상승변환하면 같은 타입으로
만들 수 있기 때문입니다.
(un)signed __int64에 대해서만 따로 코드를 작성하였으며, 이것은 변환에서도 마찬가지입니다.
하지만, 여전히 실수형 float, double에서는 생성 할 수 없습니다.
변환함수에서는 디버그모드와 릴리스모드일 때, 다르게 동작 하는 부분이 있습니다.
디버그 모드에서는 음수인 빅인티져형을 unsigned형으로 변환 하려고 하면
에러가 나지만 릴리스모드에서는 0이 리턴됩니다.
크기가 큰것을 작은것으로 변환 하려고 해도
에러가 나지 않고 0이 변환됩니다.
'프로젝트 > 큰수 클래스(Big Numerics)' 카테고리의 다른 글
[BigInteger - 7] 비트연산 (0) | 2011.07.01 |
---|---|
[BigInteger - 6] 비교연산 (1) | 2011.06.30 |
[BigInteger - 4] 초기화 (0) | 2011.06.28 |
[BigInteger - 3] 생성자 개요 (0) | 2011.06.28 |
[BigInteger - 2] 클래스 만들기 (1) | 2011.06.27 |