回顾一下大数的定义
typedef uint64_t gm_bn_t[8];
1
数组索引从低到高分别存放的大数的低到高位,那么比较的时候应该是从高位索引开始,具体实现如下:
int gm_bn_cmp(const gm_bn_t a, const gm_bn_t b) {
int i;
for (i = 7; i >= 0; i--) {
if (a[i] > b[i])
return 1;
if (a[i] < b[i])
return -1;
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
当a等于b时返回0
当a大于b时返回1
当a小于b时返回-1
未经本人同意,禁止转载!