單位元組校驗方法

2021-09-30 05:30:16 字數 593 閱讀 6495

今天看到一道面試題,關於單位元組校驗的方法的。

乙個位元組,bit7存放著bit0-bit6間bit為1的奇偶性,例如0x7,共有3個(奇數)bit位為1,所以首個bit為1,則整個位元組是0x87.

需要設計乙個sender和receiver系統來實現傳輸資料的準確性。

對於這個需求,我的想法是查表,原來是想建立乙個2的7次方位元組的陣列來儲存每個數的結果,後來一想其結果就0和1,用位元組儲存太浪費了,可以用位儲存來優化。以下是簡單的**。

byte a[16];//儲存結果的表,例如輸入的數是108,則從起始位置開始到第108個bit查詢結果

//校驗函式

bool crc(byte data)

return (get_bit(data,7)) == (get_bit( a[(data&~0x80) >> 3] , (data & 0x7)));

get_bit(data,7)   //獲取首個bit位值

get_bit( a[(data&~0x80) >> 3] , (data & 0x7))  //先找出data在a[16]中屬於哪個位元組,在這個位元組中找出data%8的那個bit

突然覺得我寫的**有點難看懂它了。。。

CRC校驗方法

協議中使用 crc校驗 crc 2位元組校驗 協議的word上提供了c的 dephi的vb的,但是沒提供c 的,所以根據vb的,我該寫成c 的。記錄一下,以備以後使用。private static int gen crc byte buffer,int bufferlength c convert....

常用校驗方法

是否為空校驗 function isempty s var lll trim s if lll null lll.length 0 return true else return false 刪除字串左邊的空格 function ltrim str if str.length 0 return st...

表單提交前 校驗方法

有時在表單提交前,需要對所填報或者選擇的資料進行校驗,只有先通過校驗的資料才能到達後台的action中,這樣就省去了每次提交都到action中去校驗的步驟,能提高效率。方法就是在確定前執行指令碼,去驗證 代表乙個bean return checkselectiteam js 校驗方法 functio...