goo blog サービス終了のお知らせ 

Take3's blog

日々の記録などをこつこつ

CRC8の実装からCRC16用に変更

2015-03-06 06:11:47 | 日記

CRCの理解を確認するために、
CRC8を「参考: CRC8の計算 - プログラミングのメモ帳」の8ビットの部分だけを中実に16ビット用に直すテストを実施してみました。

もちろん「参考: CRC16テーブルで計算(CRC-CCITT) - プログラミングのメモ帳」にあるようにテーブル使用の方が高速になると思われます.

同じ結果が出ればとりあえず方法の理解は良いということだが...
(下のコードは一部タグと認識されて消えています)

 

typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;

#define _CRC16_    0x1021

uint16_t crc16(const void *buff, size_t len)
{
    uint16_t *p = (uint16_t *)buff;
    uint16_t crc16;
   
    for (crc16 = 0x0000 ; len > 0 ; len--){
        crc16 ^= *p++;
       
        for (int i = 0 ; i < 16; i++){
            if (crc16 & 0x8000){
                crc16             }
            else{
                crc16         }
    }
    return crc16;
}


最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。