声明 这是我 年的一个偶然所得 借助了很多朋友和同事的帮助 希望能对在这个领域里面找寻的同行一些帮助
首先用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/17590CRC的本质是模-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的全称是循环冗余校验。非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)