📄 数据库开发md5算法在pb里面地完成[库库中文网]-系统编程教程 qqgb_com.htm
字号:
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">next</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//对结果取补码</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_return = this.of_bitwisefill(ls_return)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//取结果符号</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if leftw(ls_return,4) = '1111' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_sign = '-'</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">else</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_sign = ''</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_return = midw(ls_return,5,lenw(ls_return))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//将结果转为十进制</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ll_result = this.of_binarytodecimalunsigned (ls_return)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//结果加上符号</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if ls_sign = '-' then ll_result = ll_result * (-1)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">return ll_result</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end function</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function long of_bitwiseor (long al_value1, long al_value2);</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">/*******************************************************************</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">函数名称:of_bitwiseor()</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">参数: al_value1 long 值1</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> al_value1 long 值2</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">返回值: long 按位或运算结果</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">功能描述:按位或运算</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">创建人: 康剑民</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">创建日期:2004-05-23</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">版本号: v1.0.0 </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">*******************************************************************/</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">integer li_cnt,li_len</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">long ll_result</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">string ls_bitvalue1,ls_bitvalue2,ls_return,ls_sign</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//检查参数</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if isnull(al_value1) or isnull(al_value2) then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> setnull(ll_result)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> return ll_result</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue1 = this.of_binary(al_value1)//取值1的二进制值</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue2 = this.of_binary(al_value2)//取值2的二进制值</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//删除符号位</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if leftw(ls_bitvalue1,1) = '-' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue1 = midw(ls_bitvalue1,2,lenw(ls_bitvalue1))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if leftw(ls_bitvalue2,1) = '-' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue2 = midw(ls_bitvalue2,2,lenw(ls_bitvalue2))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//取参与运算的二进制值长度</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">li_len = max(lenw(ls_bitvalue1),lenw(ls_bitvalue2))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">li_len = ceiling(li_len / 4) * 4</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//补位</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue1 = fill('0',li_len - lenw(ls_bitvalue1)) + ls_bitvalue1</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue2 = fill('0',li_len - lenw(ls_bitvalue2)) + ls_bitvalue2</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//加符号位</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if al_value1 < 0 then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue1 = fill('1',4) + ls_bitvalue1</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">else</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue1 = fill('0',4) + ls_bitvalue1</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if al_value2 < 0 then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue2 = fill('1',4) + ls_bitvalue2</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">else</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue2 = fill('0',4) + ls_bitvalue2</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//取补码</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue1 = this.of_bitwisefill(ls_bitvalue1)//取值1的补码</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue2 = this.of_bitwisefill(ls_bitvalue2)//取值2的补码</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//对应位或运算(参数运算的两元素以补码表示,运算结果也以补码表示;只要二者中有一个为1时结果为1否则为0)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">for li_cnt = 1 to li_len + 4</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> if midw(ls_bitvalue1,li_cnt,1) = '1' or midw(ls_bitvalue2,li_cnt,1) = '1' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_return = ls_return + '1'</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> else</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_return = ls_return + '0'</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">next</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//对结果取补码</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_return = this.of_bitwisefill(ls_return)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if leftw(ls_return,4) = '1111' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_sign = '-'</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">else</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_sign = ''</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_return = midw(ls_return,5,lenw(ls_return))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//将结果转为十进制</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ll_result = this.of_binarytodecimalunsigned (ls_return)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//加上符号位</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if ls_sign = '-' then ll_result = ll_result * (-1)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">return ll_result</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end function</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">public function long of_bitwisexor (long al_value1, long al_value2);</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">/*******************************************************************</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">函数名称:of_bitwiseor()</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">参数: al_value1 long 值1</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> al_value1 long 值2</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">返回值: long 按位异或运算结果</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">功能描述:按位异或运算</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">创建人: 康剑民</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">创建日期:2004-05-23</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">版本号: v1.0.0 </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">*******************************************************************/</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">integer li_cnt,li_len</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">long ll_result</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">string ls_bitvalue1,ls_bitvalue2,ls_return,ls_sign</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//检查参数</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if isnull(al_value1) or isnull(al_value2) then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> setnull(ll_result)</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> return ll_result</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> </div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue1 = this.of_binary(al_value1)//取值1的二进制值</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">ls_bitvalue2 = this.of_binary(al_value2)//取值2的二进制值</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//删除符号位</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if leftw(ls_bitvalue1,1) = '-' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue1 = midw(ls_bitvalue1,2,lenw(ls_bitvalue1))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">if leftw(ls_bitvalue2,1) = '-' then</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left"> ls_bitvalue2 = midw(ls_bitvalue2,2,lenw(ls_bitvalue2))</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">end if</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt" align="left">//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -