1 2 3 4 5 6 7 8 9 |
u4 bigint_size_i( const bigint *src) { for (u4 i=src->len-1;( long )i>=0;--i) { if (src->dats[i]==0) continue ; return i+1; } return 0; } |
1 2 3 4 5 6 7 |
int bigint_eq( const bigint *xi1, const bigint *xi2) { u4 xi1size=bigint_size_i(xi1), xi2size=bigint_size_i(xi2); if (xi1size!=xi2size) return 0; if ( memcmp (xi1->dats, xi2->dats, sizeof (u4)*xi1size)==0) return 1; return 0; } |
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 |
int bigint_gt_i( const bigint *xi1, const bigint *xi2) { u4 xi1size=bigint_size_i(xi1), xi2size=bigint_size_i(xi2); if (xi1size>xi2size) return 1; if (xi1size<xi2size) return 0; for (u4 i=xi1size;i>0;i--) { if (xi1->dats[i-1]>xi2->dats[i-1]) return 1; if (xi1->dats[i-1]<xi2->dats[i-1]) return 0; } return 0; } int bigint_gte_i( const bigint *xi1, const bigint *xi2) { u4 xi1size=bigint_size_i(xi1), xi2size=bigint_size_i(xi2); if (xi1size>xi2size) return 1; if (xi1size<xi2size) return 0; for (u4 i=xi1size;i>0;i--) { if (xi1->dats[i-1]>xi2->dats[i-1]) return 1; if (xi1->dats[i-1]<xi2->dats[i-1]) return 0; } return 1; } |
BigInteger를 구현해보자 - 9. 10진수로 출력하기(코드) (0) | 2009.04.26 |
---|---|
BigInteger를 구현해보자 - 8. 10진수로 출력하기(알고리즘) (3) | 2009.04.26 |
BigInteger를 구현해보자 - 7. 나누기 (2) | 2009.04.25 |
BigInteger를 구현해보자 - 5. 시프트 연산 (0) | 2009.04.12 |
BigInteger를 구현해보자 - 4. 곱셈과 부호 체크 (0) | 2009.03.29 |
BigInteger를 구현해보자 - 3. 음수의 표현, 뺄셈 (4) | 2009.03.29 |
댓글 영역