首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加到位数组

添加到位数组
EN

Stack Overflow用户
提问于 2010-04-27 07:09:52
回答 4查看 3.6K关注 0票数 1

在我的程序中,我使用BitArrays来表示160位数字。我想要能够加、减、增、减这些数字,做这件事的算法是什么?

目前我对乘法和除法不感兴趣,但我将来可能会学,所以我会为它加分。

我是用C#实现的,但是如果您不熟悉这门语言,伪代码也可以

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-27 07:46:04

既然您使用的是C#,那么您可能想看看最近发布的.NET 4.0中添加的BigInteger

票数 2
EN

Stack Overflow用户

发布于 2010-04-27 08:31:35

还有一种更好的方法,高中数学使用标准的“波纹进位”方法,这种方法的缺点是你必须一次做一点。‘'Carry ahead’是你想在谷歌上搜索的术语,或者直接读一下:

http://en.wikipedia.org/wiki/Carry_look-ahead_adder

它对位进行分组,并执行一些巧妙的逻辑,以大大减少将数字相加的步骤数。有一个并行的减法过程,我只是记不住名字了。

票数 1
EN

Stack Overflow用户

发布于 2010-04-27 07:12:36

递增和递减你可以用手写,加,减,你可以用write方法写。你之所以知道这种方法,是因为你在基础学校中使用了这种方法,这种方法不仅适用于基数2和10的所有数字系统。

如下所示:

代码语言:javascript
复制
100100
010110 +
--------
111010
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2717582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档