ORACLE中实现CRC32的计算函数,SOLARIS平台

ORACLE中实现CRC32的计算函数,SOLARIS平台,第1张

声明 这是我 年的一个偶然所得 借助了很多朋友和同事的帮助 希望能对在这个领域里面找寻的同行一些帮助

首先用C在SOLARIS上编写一个CRC C文件

使用了SOLARIS上的GCC编译器 编译了CRC C文件 该文件最好放在oracle g主目录下

使用gcc编译器 编译成 位的crc so文件

编译命令是

gcc m fpic o crc o c crc c

gcc shared m o crc so crc o L/usr/sfw/lib/

在数据库中创建lib 命令是

SQL>create or replace library CRC as /opt/oracle g/crc so /

再创建function 命令如下

以下为引用的衫辩内容

CREATE OR REPLACE function crc_ (a in varchar )return binary_integeraslanguage Clibrary CRC name call_crc parameters(a string return int)/

以下为引用的内容

 兆好 SQL>select crc_ ( hello ) from dual

CRC_ ( HELLO )

同使用PERL语言写的CRC 算法程序计算

crc pl hello

结果一致

同理对其他字符串进行了测或猜缺试 结果一样

lishixinzhi/Article/program/Oracle/201311/17590

CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样。通常,CRC的除数用生成多项式来表示。最常用的CRC码及生成多项式名称生成多项式。

CRC-12:

CRC-16:

CRC-CCITT:

CRC-32:

CRC校验实用程序库在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最哪绝改著名的一种。CRC的全称是循环冗余校验。

通常的CRC算李判法在计算一个数据段的CRC值时,其CRC值是由求解每个数值的CRC值的和对CRC寄存器的值反复更宏弊新而得到的。这样,求解CRC的速度较慢。通过对CRC算法的研究,我们发现:一个8位数据加到16位累加器中去,只有累加器的高8位或低8位与数据相作用,其结果仅有256种可能的组合值。

因而,我们可以用查表法来代替反复的运算,这也同样适用于CRC32的计算。本文所提供的程序库中,函数crchware是一般的16位CRC的算法。mk-crctbl用以在内存中建立一个CRC数值表。

您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望携蠢见谅!。展开全部

CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样。通常,CRC的除数用生成多项式来表示。 最常用的CRC码及生成辩敏陪多项式名称生成多项式。

CRC-12:

CRC-16:

CRC-CCITT:

CRC-32:

CRC校验实用程序库 在数据存储和数拿掘据通讯领域,为了保证数据的正确,就不得不采用检错的手段。在诸多检错手段中,CRC是最著名的一种。CRC的全称是循环冗余校验。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12507006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存