iOS藍(lán)牙開發(fā)--異或校驗

與某一個值異或校驗

/**

 @param contentData 需要校驗的內(nèi)容
 @return 異或值
 */
- (int)contentCheckValue:(NSData *)contentData {
    Byte *testByte = (Byte *)[contentData bytes];
    int checksum = 0;
    for(int i=0; i<[contentData length]; i++) {
        checksum ^= testByte[i];
    }
    return checksum;
}

與一個固定的值(0x5A)異或

/**
 與一個固定的值異或

 @return 異或后的值
 */
- (NSData *)xor_0X5A {
    NSMutableData *data = [NSMutableData dataWithLength:1];
    uint8_t num = 0x5A;
    [data replaceBytesInRange:NSMakeRange(0, 1) withBytes:&num];
    Byte *byte1 = (Byte *)[self.copy bytes];
    Byte *byte2 = (Byte *)[data bytes];
    for(int i = 0; i < self.length; i++) {
        byte1[i] ^= byte2[0];
    }
    NSData *data1 = [[NSData alloc] initWithBytes:byte1 length:self.length];
    return data1;
}

異或校驗(每一字節(jié)分別異或)

/**
 異或校驗(每一字節(jié)分別異或)

 @return 校驗值
 */
- (int)contentCheckValue {
    Byte *testByte = (Byte *)[self bytes];
    int checksum = 0;
    for(int i=0; i<[self length]; i++) {
        checksum ^= testByte[i];
    }
    return checksum;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,427評論 6 13
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,665評論 1 32
  • 1好:目標(biāo)市場 今天將目標(biāo)市場的客戶進(jìn)行了梳理,了解所在區(qū)域的火鍋品牌有多少,品牌旗下的店面有多少,屬于全...
    8f9514241cc4閱讀 126評論 0 1
  • 嘿嘿嘿
    方腦殼ing閱讀 166評論 0 0
  • 我把今天作為一個新的開始,因為今天上午參加了你們學(xué)校的家長開放日,跟你一起去學(xué)校,跟你一起上課! 今天我們?nèi)サ谋绕?..
    恒寶持之以恒閱讀 166評論 0 0

友情鏈接更多精彩內(nèi)容