哪位哥哥给讲解下这个函数

babycalf 2009-10-02 11:32:56
$PBExportHeader$n_cst_crc.sru
$PBExportComments$Export
forward
global type n_cst_crc from nonvisualobject
end type

end forward

shared variables
n_cst_numerical snv_numerical
integer si_crc16table[256] ={0,4129,8258,12387,16516,20645,24774,28903,-32504,-28375,-24246,-20117,-15988,-11859,-7730,-3601,4657,528,12915,8786,21173,17044,29431,25302,-27847,-31976,-19589,-23718,-11331,-15460,-3073,-7202,9314,13379,1056,5121,25830,29895,17572,21637,-23190,-19125,-31448,-27383,-6674,-2609,-14932,-10867,13907,9842,5649,1584,30423,26358,22165,18100,-18597,-22662,-26855,-30920,-2081,-6146,-10339,-14404,18628,22757,26758,30887,2112,6241,10242,14371,-13876,-9747,-5746,-1617,-30392,-26263,-22262,-18133,23285,19156,31415,27286,6769,2640,14899,10770,-9219,-13348,-1089,-5218,-25735,-29864,-17605,-21734,27814,31879,19684,23749,11298,15363,3168,7233,-4690,-625,-12820,-8755,-21206,-17141,-29336,-25271,32407,28342,24277,20212,15891,11826,7761,3696,-97,-4162,-8227,-12292,-16613,-20678,-24743,-28808,-28280,-32343,-20022,-24085,-12020,-16083,-3762,-7825,4224,161,12482,8419,20484,16421,28742,24679,-31815,-27752,-23557,-19494,-15555,-11492,-7297,-3234,689,4752,8947,13010,16949,21012,25207,29270,-18966,-23093,-27224,-31351,-2706,-6833,-10964,-15091,13538,9411,5280,1153,29798,25671,21540,17413,-22565,-18438,-30823,-26696,-6305,-2178,-14563,-10436,9939,14066,1681,5808,26199,30326,17941,22068,-9908,-13971,-1778,-5841,-26168,-30231,-18038,-22101,22596,18533,30726,26663,6336,2273,14466,10403,-13443,-9380,-5313,-1250,-29703,-25640,-21573,-17510,19061,23124,27191,31254,2801,6864,10931,14994,-722,-4849,-8852,-12979,-16982,-21109,-25112,-29239,31782,27655,23652,19525,15522,11395,7392,3265,-4321,-194,-12451,-8324,-20581,-16454,-28711,-24584,28183,32310,20053,24180,11923,16050,3793,7920}
long sl_crc32table[256] ={0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,-1742489888,-1662866601,-1851683442,-1788833735,-1960329156,-1880695413,-2103051438,-2040207643,-1104454824,-1159051537,-1213636554,-1284997759,-1389417084,-1444007885,-1532160278,-1603531939,-734892656,-789352409,-575645954,-646886583,-952755380,-1007220997,-827056094,-898286187,-231047128,-151282273,-71779514,-8804623,-515967244,-436212925,-390279782,-327299027,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,-1398421865,-1469785312,-1524105735,-1578704818,-1079922613,-1151291908,-1239184603,-1293773166,-1968362705,-1905510760,-2094067647,-2014441994,-1716953613,-1654112188,-1876203875,-1796572374,-525066777,-462094256,-382327159,-302564546,-206542021,-143559028,-97365931,-17609246,-960696225,-1031934488,-817968335,-872425850,-709327229,-780559564,-600130067,-654598054,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,-248556018,-168932423,-122852000,-60002089,-500490030,-420856475,-341238852,-278395381,-685261898,-739858943,-559578920,-630940305,-1004286614,-1058877219,-845023740,-916395085,-1119974018,-1174433591,-1262701040,-1333941337,-1371866206,-1426332139,-1481064244,-1552294533,-1690935098,-1611170447,-1833673816,-1770699233,-2009983462,-1930228819,-2119160460,-2056179517,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,-978770311,-1050133554,-869589737,-924188512,-693284699,-764654318,-550540341,-605129092,-475935807,-413084042,-366743377,-287118056,-257573603,-194731862,-114850189,-35218492,-1984365303,-1921392450,-2143631769,-2063868976,-1698919467,-1635936670,-1824608069,-1744851700,-1347415887,-1418654458,-1506661409,-1561119128,-1129027987,-1200260134,-1254728445,-1309196108}
end variables

global type n_cst_crc from nonvisualobject autoinstantiate

end type
global n_cst_crc n_cst_crc


forward prototypes
Private subroutine of_initcrc16 ()
Private subroutine of_initcrc32 ()
Public function ulong of_crc32 (readonly string as_data,long al_crc)
Public function uint of_crc16 (readonly string as_data,integer ai_crc)
end prototypes
Private subroutine of_initcrc16 ();//Private function of_initcrc16 (none) returns (none)
integer li_crc
integer li_i
integer li_j


FOR li_i = 0 TO 255 //0
li_crc = li_i * 256
FOR li_j = 0 TO 7 //2
IF snv_numerical.of_getbit(li_crc,16) THEN //44
li_crc = snv_numerical.of_bitwisexor(li_crc * 2,4129)
CONTINUE
END IF //44
li_crc = snv_numerical.of_bitwisexor(li_crc * 2,0)
NEXT //2
si_crc16table;li_i + 1 -- = li_crc
NEXT //0

end subroutine
Private subroutine of_initcrc32 ();//Private function of_initcrc32 (none) returns (none)
long ll_crc
integer li_i
integer li_j


FOR li_i = 0 TO 255 //0
ll_crc = li_i * 16777216
FOR li_j = 0 TO 7 //2
IF snv_numerical.of_getbit(ll_crc,32) THEN //44
ll_crc = snv_numerical.of_bitwisexor(ll_crc * 2,79764919)
CONTINUE
END IF //44
ll_crc = snv_numerical.of_bitwisexor(ll_crc * 2,0)
NEXT //2
sl_crc32table;li_i + 1 -- = ll_crc
NEXT //0

end subroutine
Public function ulong of_crc32 (readonly string as_data,long al_crc);//Public function of_crc32 (readonly string as_data,long al_crc) returns ulong
//string as_data
//long al_crc
integer li_i
integer li_l


li_l = len(as_data)
FOR li_i = 1 TO li_l //1
al_crc;snv_numerical = sl_crc32table.of_bitwisexor(snv_numerical.of_bitwiseand(snv_numerical.of_bitwisexor(al_crc / 16777216,asc(mid(as_data,li_i,1))),255) + 1 --,al_crc * 256)
NEXT //1
RETURN al_crc

end function
Public function uint of_crc16 (readonly string as_data,integer ai_crc);//Public function of_crc16 (readonly string as_data,integer ai_crc) returns uint
//string as_data
//integer ai_crc
integer li_i
integer li_l


li_l = len(as_data)
FOR li_i = 1 TO li_l //1
ai_crc;snv_numerical = si_crc16table.of_bitwisexor(snv_numerical.of_bitwiseand(snv_numerical.of_bitwisexor(ai_crc / 256,asc(mid(as_data,li_i,1))),255) + 1 --,ai_crc * 256)
NEXT //1
RETURN ai_crc

end function
on n_cst_crc.create
//create (none) returns (none)


THIS.triggerevent("constructor")

end on

on n_cst_crc.destroy
//destroy (none) returns (none)


THIS.triggerevent("destructor")

end on
...全文
633 42 打赏 收藏 转发到动态 举报
写回复
用AI写文章
42 条回复
切换为时间正序
请发表友善的回复…
发表回复
weiweipxb 2010-02-22
  • 打赏
  • 举报
回复
学习系统最好是先知道流程,然后再去看代码了。要不然一来就看代码,你要从代码中把业务规则读出来。不大好吧。
liu6848 2010-02-18
  • 打赏
  • 举报
回复
看不懂,纯支持。懂的请讲一下。
奔跑吧、贝肯 2010-02-01
  • 打赏
  • 举报
回复
看不懂 你哪里搞的?
Quietl_Clouds 2010-02-01
  • 打赏
  • 举报
回复
不懂
youping_ouyang 2010-02-01
  • 打赏
  • 举报
回复
up
lbkbox 2010-02-01
  • 打赏
  • 举报
回复
此代码是反编译的
ljg7428 2010-02-01
  • 打赏
  • 举报
回复
up
liu6848 2010-01-31
  • 打赏
  • 举报
回复
复杂,看不懂,菜鸟飞过~~~
yjlhch 2010-01-26
  • 打赏
  • 举报
回复
路过,帮顶一下
yxlsuny 2010-01-26
  • 打赏
  • 举报
回复
你怎么不发对象里面的内容啊 看不懂也
tiantanglyz 2010-01-26
  • 打赏
  • 举报
回复
顶可用分
色域至尊 2010-01-25
  • 打赏
  • 举报
回复
顶哈
cow_mouth 2010-01-24
  • 打赏
  • 举报
回复
我是为了分来的。。。。
pk_110 2009-12-30
  • 打赏
  • 举报
回复
顶 看不明白
fuxiaoyang13 2009-12-29
  • 打赏
  • 举报
回复
应该是crc校验码算法!
liuxg1981 2009-12-28
  • 打赏
  • 举报
回复
看不懂!
wsz0812 2009-12-27
  • 打赏
  • 举报
回复
又有10分............
summerycool 2009-12-25
  • 打赏
  • 举报
回复
crc校验码算法
busylife 2009-12-24
  • 打赏
  • 举报
回复
拿分,走人,看得头大
老妖附体 2009-11-11
  • 打赏
  • 举报
回复
什么东西?怎么用的?
加载更多回复(20)

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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