<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    Delphi:兩個高效的哈希函數

    發布時間:2011-3-29 20:15    發布者:1770309616
    關鍵詞: Delphi , 哈希函數
    view plaincopy to clipboardprint?
    01.function BKDRHash(buf: Pointer; count: Integer) : Cardinal; assembler;   
    02.asm  
    03.        PUSH  EBX;   
    04.        XOR   EBX, EBX   
    05.        MOV   ECX, EAX   
    06.        XOR   EAX, EAX   
    07.@LOOP:   
    08.        TEST  EDX, EDX   
    09.        JZ    @EXIT   
    10.        MOV   BL,  [ECX]   
    11.        IMUL  EAX, 131  
    12.        ADD   EAX, EBX   
    13.        INC   ECX   
    14.        DEC   EDX   
    15.        JMP   @LOOP   
    16.@EXIT:   
    17.        POP   EBX   
    18.//----------------------------   
    19.// Pascal:   
    20.//   
    21.//  Result := 0;   
    22.//  while count > 0 do   
    23.//  begin   
    24.//    Result := (Result * 131) + PByte(buf)^;   
    25.//    Inc(PByte(buf));   
    26.//    Dec(count);   
    27.//  end;   
    28.end;   
    29.function DJBHash(buf: Pointer; count: Integer) : Cardinal; assembler;   
    30.asm  
    31.        PUSH  EDI   
    32.        PUSH  EBX   
    33.        XOR   EBX, EBX   
    34.        MOV   ECX, EAX   
    35.        MOV   EAX, 5381  
    36.@LOOP:   
    37.        TEST  EDX, EDX   
    38.        JZ    @EXIT   
    39.        MOV   EDI, EAX   
    40.        SHL   EDI, 5  
    41.        ADD   EAX, EDI   
    42.        MOV   BL, [ECX]   
    43.        ADD   EAX, EBX   
    44.        INC   ECX   
    45.        DEC   EDX   
    46.        JMP   @LOOP   
    47.@EXIT:   
    48.        POP   EBX   
    49.        POP   EDI   
    50.//----------------------------   
    51.// Pascal:   
    52.//   
    53.//  Result := 5381;   
    54.//  while count > 0 do   
    55.//  begin   
    56.//    Result := ((Result shl 5) + Result) + PByte(buf)^;   
    57.//    Inc(PByte(buf));   
    58.//    Dec(count);   
    59.//  end;   
    60.end;  
    function BKDRHash(buf: Pointer; count: Integer) : Cardinal; assembler;
    asm
            PUSH  EBX;
            XOR   EBX, EBX
            MOV   ECX, EAX
            XOR   EAX, EAX
    @LOOP:
            TEST  EDX, EDX
            JZ    @EXIT
            MOV   BL,  [ECX]
            IMUL  EAX, 131
            ADD   EAX, EBX
            INC   ECX
            DEC   EDX
            JMP   @LOOP
    @EXIT:
            POP   EBX
    //----------------------------
    // Pascal:
    //
    //  Result := 0;
    //  while count > 0 do
    //  begin
    //    Result := (Result * 131) + PByte(buf)^;
    //    Inc(PByte(buf));
    //    Dec(count);
    //  end;
    end;
    function DJBHash(buf: Pointer; count: Integer) : Cardinal; assembler;
    asm
            PUSH  EDI
            PUSH  EBX
            XOR   EBX, EBX
            MOV   ECX, EAX
            MOV   EAX, 5381
    @LOOP:
            TEST  EDX, EDX
            JZ    @EXIT
            MOV   EDI, EAX
            SHL   EDI, 5
            ADD   EAX, EDI
            MOV   BL, [ECX]
            ADD   EAX, EBX
            INC   ECX
            DEC   EDX
            JMP   @LOOP
    @EXIT:
            POP   EBX
            POP   EDI
    //----------------------------
    // Pascal:
    //
    //  Result := 5381;
    //  while count > 0 do
    //  begin
    //    Result := ((Result shl 5) + Result) + PByte(buf)^;
    //    Inc(PByte(buf));
    //    Dec(count);
    //  end;
    end; 各種哈希函數算法請參考:http://www.partow.net/programming/hashfunctions/
    本文地址:http://www.portaltwn.com/thread-60394-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    eechinaeechin 發表于 2011-6-2 15:39:34
    ok
    eechinaeechin 發表于 2011-6-2 15:40:01
    ok
    eechinaeechin 發表于 2011-6-2 15:40:17
    thanks
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區
    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷