C CRC校驗的一點感悟

2022-07-17 04:09:13 字數 1074 閱讀 3490

今天在鼓搗乙個手持操作器的時候,遇到一點問題,記錄一下今天的經驗包

由於之前公司產品在校驗時基本上都是和校驗,今天在準備用c#模擬乙個古董操作器的時候,卻遇到乙個問題,模擬器發出的資料,主機板一律不回覆,對比通訊協議也沒發現什麼問題。由於文件有些不全,只是知道通訊格式,對比之後覺得應該是校驗出了問題。由於crc校驗是資料通訊領域最常用的校驗方式,問了幾個老傢伙之後才知道這個四位元組ascii碼校驗和應該是crc16-ccitt生成的,然後就去仔細看大學時候煞筆了很久也沒明白的crc校驗的細節。

具體crc如何生成我不闡述了,關鍵點在於「生成多項式」和初始值。

crc16-ccitt的生成多項式是 0x1021;

不多說了,提供**crc16-ccitt類

public

class

crc16ccitt

const

ushort poly = 4129

;

ushort table = new

ushort[256

];

ushort initialvalue = 0

;

public

crc16ccitt(initialcrcvalue initialvalue)

else

a <<= 1

; }

table[i] =temp;}}

public

ushort computechecksum(byte

bytes)

return

crc;

}public

ushort computechecksum(listlisttemp)

return

crc;

}public

byte computechecksumbytes(byte

bytes)

public

byte listtobytes(listlisttemp)

return

bytes;

}}

最後,請叫我紅領巾

雜談,一點感悟

今晚與老領導交流,談及目前開發部門的相關事情,感觸良多。邁入管理工作之門也有一段時間了,都說管理無小事,但這段時間以來,一直都是被各種不同身份的工作所纏繞著,感覺縱有三頭六臂也無法完成。管理工作 專案工作 技術工作 其實對我而言,管理工作方是我的主要工作,但管理工作要出成績也並不容易。難就難在目前的...

一點小感悟

今天去了華為的機試,說實話,題目不是很難,但是自己並沒有發揮的很好,只寫出來一題半,第一題非常簡單 兩個兩位數a,b,輸出乙個四位數,將a的十位和個位放到c的十位和百位上,b的十位和個位放到c的個位和千位上,直接轉化為字串拼接一下就行。第二題有點難度 給出1,3,9,27,81,這幾個數,輸入1 1...

又是一點感悟

今天去參加了乙個技術人員的聚會,席間基本上以80後的各種前輩居多,跟他們交流也產生了一些感悟,再加上前段時間的一些經歷和感悟,特此記錄下來。乙個技術人員的核心競爭力是什麼,如果你工作幾年之後再去看乙個演算法,跟乙個校招新人去看乙個演算法有什麼區別嗎,你跟別人比的優勢又在 除了純粹的技術之外,你的其他...