能力值:
( LV2,RANK:10 )
|
-
-
2 楼
取低位用按位与AND(C语法中的&),取高位用右移shr(C语法中的/2,每除一次2即右移一位,注意不要越界),你再思考一下吧。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
在C++中,最大只能表示10位的整数,而两个大整数的积(如0x98765432*0x72345678=0x4403dd0695e84370)的前高8位"4403dd06"无法取得。请赐教。
|
能力值:
(RANK:1010 )
|
-
-
4 楼
利用大整数乘法,最后只需要在数组中取相应位数即可
|
能力值:
(RANK:410 )
|
-
-
5 楼
/* 利用结构来取int64的高低整数。*/
#include <windows.h>
#include <stdio.h>
typedef struct MY_INT64{
union{
struct{
unsigned long loDWORD;
long hiDWORD;
};
LONGLONG bigInt;
};
}MyInt64,*pMyInt64;
int main()
{
_int64 i,j;
MyInt64 i64 = {0};
pMyInt64 pi64;
i = 0x98765432;
j = 0x72345678;
pi64 = &i64;
*(_int64*)pi64 = i * j;
printf("%X%X\n",pi64->hiDWORD,pi64->loDWORD);
return 0;
}
|
能力值:
( LV4,RANK:50 )
|
-
-
6 楼
|
|
|