Erase my memory...
|
Project Euler의 문제를 풀다가 만든거 [..]
C/C++에서는 64bit이상 데이터 타입이 없어서, 초 대형 수는 처리가 불가능 하기 때문에 못푸는 문제가 좀 있는데...
그래서 초 대형 수의 4칙 연산 가능한 클래스를 만들어 봤습니다 [..]
버그가 꽤 있을지 모르지만 [....]
32bit x86 inline assembly를 썼으니 64bit로는 못돌립니다 [..]
#include
#include
#include
#include "xint.h"
void _tmain(void)
{
xint<32> test, test2;
test.FromString(_T("123456789123456789123456789123456789123456789123456789123456789123456789"));
test2.FromString(_T("987654321987654321987654321987654321987654321987654321987654321987654321987654321987654321"));
test *= test2;
TCHAR num[1024];
test.ToString(num, 1024);
_tprintf(_T("num : %s"), num);
}
-- 결과 --
num : 121932631356500531591068431825636332060204232294772132529340032763
9079328765432018765432017546105705200426702854747700509068698163389695817
71069347203169112635269
템플릿 인수는 블럭 수를 나타내는데..
한 블럭이 32bit이므로, 인수에 32를 설정하면 32*32=1024bit의 숫자를 다룰 수 있습니다.
음수는 처리하기 귀찮아서 안했습니다.
오버플로도 귀찮아서 처리 안했습니다 [..........]
 | xint.h (13.6 KB) |
| | |
|
|
|
|

お花は好きですか?
검색
카테고리
태그 목록
방문자 집계
전체 21317 명
오늘 5 명
어제 9 명
글 보관함
달력
| S |
M |
T |
W |
T |
F |
S |
| 27 | 28 | 29 | 30 | 31 | 1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9 | | 10 | 11 | 12 | 13 | 14 | 15 | 16 | | 17 | 18 | 19 | 20 | 21 | 22 | 23 | | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | 31 | 1 | 2 | 3 | 4 | 5 | 6 |
|
최근에 올라온 글
최근에 달린 댓글
최근에 받은 트랙백
링크 사이트
|