我要做一个幂运算,大家知道,幂运算很容易导致溢出,如41的70次幂早就超过__int64的存储范围了,所以要自己设计一个数据类型,可以存储任意大的整数。该怎么设计?
我本来想这样设计:
struct SUPERData
{
__int64 i64low;//存储低位
__int64 i64high;//存放高位
}
没有溢出的话,就存放在i64low里;若一有溢出,i64high就增1,
可是怎么知道i64low溢出了呢??
并且,我若正确设计出了这个数据类型,我有怎样用它来做一些其他的运算呢??比如求余。
我本来想这样设计:
struct SUPERData
{
__int64 i64low;//存储低位
__int64 i64high;//存放高位
}
没有溢出的话,就存放在i64low里;若一有溢出,i64high就增1,
可是怎么知道i64low溢出了呢??
并且,我若正确设计出了这个数据类型,我有怎样用它来做一些其他的运算呢??比如求余。
解决方案 »
- 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 菜鸟求助:能否在xp登录验证的时候像win7那样输入密码时候弹出软键盘
- ndis 编译问题
- T.264怎么编译?
- 有什么介绍界面设计全面详细些的?
- 怎样得到一个打开的文件的创建时间和修改时间?
- 怎样做一个程序,使系统一开机的时候运行,但是主窗口不可见
- 我做的骑士旅行问题。在递归的返回中,可能有点错。大家帮忙看看
- 谁有CJLIB60库的详细资料?
- 我想做个跟media player里类似的播放滑动条,请问如何实现啊?
- 求ADD-INS编程的资料!
- 寻找<<VC++实践与提高COM和COM+篇>>的随书光盘
- 有关WNetAddConnection2函数的问题
直接用数组了,容易理解的是,a(1) as byte
一个元素放一位。
想想别人怎么求10000!的,
由于 int 是 32 bit,做乘法时每两个 int 的积不会超过 2^31,然后进位就可以了四则运算,加 减 乘 都可以用简单的算术方法(逐项相乘,再进位),除用减法实现