藍(lán)牙開發(fā)中數(shù)據(jù)處理的那些事

藍(lán)牙開發(fā)就會(huì)涉及到相關(guān)數(shù)據(jù)的處理货抄,如下整理的是開發(fā)中用的到的知識(shí)點(diǎn)(后續(xù)會(huì)不斷更新)

NSData與Byte的轉(zhuǎn)換

int allDataLength = (int)allData.length;
Byte allDataByte[allDataLength];
[allData getBytes:&allDataByte length:allDataLength];

兩位NSData轉(zhuǎn)int

int value=*(int*)([intdata bytes]);

兩位NSData高低字節(jié)轉(zhuǎn)換成int

int heartCount = 0;
//獲取心率數(shù)據(jù)
Byte heart[2];
heart[0] = allDataByte[10];
heart[1] = allDataByte[11];
NSData *heartData = [NSData dataWithBytes:heart length:2];
//這樣獲取到的值是高低字節(jié)轉(zhuǎn)化過的
//例如:0xff00,轉(zhuǎn)換的數(shù)據(jù)是0x00ff的值,也就是255
[heartData getBytes:&heartCount length:2];

數(shù)值轉(zhuǎn)16進(jìn)制字符串

//轉(zhuǎn)換出來的字符串是小寫字母帽氓,如需大寫再進(jìn)行轉(zhuǎn)換
- (NSString*)stringWithHexNumber:(long long int)hexNumber
{
    char hexChar[20];
    sprintf(hexChar,"%llx", hexNumber);
    NSString *hexString = [NSString stringWithCString:hexChar encoding:NSUTF8StringEncoding];
    return hexString;
}

字符串的大小寫轉(zhuǎn)換

// 把字符串全部轉(zhuǎn)化為小寫
NSString *lowercaseString = [str lowercaseString];
NSString * lowercaseString = str.lowercaseString;

// 把字符串全部轉(zhuǎn)化為大寫
NSString *uppercaseString = [str uppercaseString];
NSString *uppercaseString = str.uppercaseString;

//開頭大寫,其余小寫
NSString *capitalizedString =[str capitalizedString];

16進(jìn)制字符串轉(zhuǎn)數(shù)值

- (long long int)numberWithHexString:(NSString*)hexString
{
    const char *hexChar = [hexString cStringUsingEncoding:NSUTF8StringEncoding];
    long long int hexNumber;
    sscanf(hexChar,"%llx", &hexNumber);
    return (long long int)hexNumber;
}

16進(jìn)制字符串轉(zhuǎn)NSData

//這個(gè)方法是從頭開始取分瘾,如果字符串是奇數(shù)朴肺,最后一位會(huì)被舍棄
- (NSData *) stringToHexData:(NSString *)hexStr
{
    unsigned long len = [hexStr length] / 2;    // Target length
    unsigned char *buf = malloc(len);
    unsigned char *whole_byte = buf;
    char byte_chars[3] = {'\0','\0','\0'};
    int i;
    for (i=0; i < [hexStr length] / 2; i++) {
        byte_chars[0] = [hexStr characterAtIndex:i*2];
        byte_chars[1] = [hexStr characterAtIndex:i*2+1];
        *whole_byte = strtol(byte_chars, NULL, 16);
        whole_byte++;
    }
    NSData *data = [NSData dataWithBytes:buf length:len];
    free( buf );
    return data;
}
//這個(gè)方法,如果字符串是奇數(shù)位聪轿,則第一位默認(rèn)補(bǔ)零,再依次向后轉(zhuǎn)換
- (NSData *)convertHexStrToData:(NSString *)str
{
    if (!str || [str length] == 0) {
        return nil;
    }
    NSMutableData *hexData = [[NSMutableData alloc] initWithCapacity:20];
    NSRange range;
    if ([str length] % 2 == 0) {
        range = NSMakeRange(0, 2);
    } else {
        range = NSMakeRange(0, 1);
    }
    for (NSInteger i = range.location; i < [str length]; i += 2) {
        unsigned int anInt;
        NSString *hexCharStr = [str substringWithRange:range];
        NSScanner *scanner = [[NSScanner alloc] initWithString:hexCharStr];
        [scanner scanHexInt:&anInt];
        NSData *entity = [[NSData alloc] initWithBytes:&anInt length:1];
        [hexData appendData:entity];
        range.location += range.length;
        range.length = 2;
    }
    return hexData;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末猾浦,一起剝皮案震驚了整個(gè)濱河市陆错,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌金赦,老刑警劉巖音瓷,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異夹抗,居然都是意外死亡绳慎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杏愤,“玉大人靡砌,你說我怎么就攤上這事∩郝ィ” “怎么了通殃?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)厕宗。 經(jīng)常有香客問我画舌,道長(zhǎng),這世上最難降的妖魔是什么媳瞪? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任骗炉,我火速辦了婚禮照宝,結(jié)果婚禮上蛇受,老公的妹妹穿的比我還像新娘。我一直安慰自己厕鹃,他們只是感情好兢仰,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剂碴,像睡著了一般把将。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上忆矛,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天察蹲,我揣著相機(jī)與錄音,去河邊找鬼催训。 笑死洽议,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的漫拭。 我是一名探鬼主播亚兄,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼采驻!你這毒婦竟也來了审胚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤礼旅,失蹤者是張志新(化名)和其女友劉穎膳叨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痘系,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡菲嘴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片临谱。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡璃俗,死狀恐怖悉默,靈堂內(nèi)的尸體忽然破棺而出城豁,到底是詐尸還是另有隱情,我是刑警寧澤抄课,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布唱星,位于F島的核電站,受9級(jí)特大地震影響跟磨,放射性物質(zhì)發(fā)生泄漏间聊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一抵拘、第九天 我趴在偏房一處隱蔽的房頂上張望哎榴。 院中可真熱鬧,春花似錦僵蛛、人聲如沸尚蝌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽飘言。三九已至,卻和暖如春驼侠,著一層夾襖步出監(jiān)牢的瞬間姿鸿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工倒源, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苛预,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓相速,卻偏偏與公主長(zhǎng)得像碟渺,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子突诬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容