怎样对数组进行算术操作?

zxyi 2000-04-28 04:22:00
我要对数据进行编码,对一串十六进制的数据 如 FF 0A 1D ...有上千位定义为 BYTE DATA[1000]
我要让他去除一个二进制的数 如 1 0101 1111 0001 1001 共17 BIT,非整BYTE数
需要得到它余数,
应该怎么办?
VC 中有没有类似的类可以解决这个问题?
或请前辈告诉我可行的解决方案
要去花费的时间尽可能的少
谢谢
...全文
261 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sniper 2000-05-01
  • 打赏
  • 举报
回复
你是要解决CRC算法,还是多字节模2除?
如果只是CRC算法的话,直接根据它的原理进行模2除运算的效率比较低,一般采用查表的方法解决。
江王 2000-05-01
  • 打赏
  • 举报
回复
是否可以这么考虑,将A[1000]按四个字节划分为250个32bit的整数N[255],0是低位,254是最高位,然后:

K为除数
result = N[249];
for( i = 248; i >= 0; i -- )
{
int64 n64 = int64shllmod32( result, 31 ) + N[i];
result = n64 % K;
}
lpj 2000-04-30
  • 打赏
  • 举报
回复
你不要想一步作完,模2除不就是作异或吗?单写个函数,然后不要一千位一起做,每次取17为和除数作异或,在单用一个数组存商,作个循环就该差不多了。
zxyi 2000-04-29
  • 打赏
  • 举报
回复
First use shift, then use minus
这是什么意思,我怎么不懂啊
zxyi 2000-04-29
  • 打赏
  • 举报
回复
是模2除,是CRC 校验的算法,请问用软件如何实现?
谁有经验或好的点子不妨说一下,谢了。
茂奇软件 2000-04-29
  • 打赏
  • 举报
回复
you must write the algorithm for the big
number operation.
halfdream 2000-04-29
  • 打赏
  • 举报
回复
你说的除是什么除? 该不会是模2除吧?
我之所以这么猜是因为你要的算法很象是CRC 校验的算法。
huitor 2000-04-29
  • 打赏
  • 举报
回复
可以,请参照一些类库源代码,如MFC,对不依赖于处理器的长整数除法算法。
Fenian 2000-04-29
  • 打赏
  • 举报
回复
Do it yourself.
First use shift, then use minus.
Shania 2000-04-29
  • 打赏
  • 举报
回复
这是不可能的,想一想目前我们的操作系统和处理器能够处理多少位的数据,32bit,64bit,...如果你有一个上千bit的数据,想把他当成一个数来处理,有点...。
Sniper 2000-04-28
  • 打赏
  • 举报
回复
你这是什么除法?二进制除吗?

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧