將十六進(jìn)制字符串轉(zhuǎn)換成字節(jié)數(shù)組

最近在做項(xiàng)目的時(shí)候遇到這樣一個(gè)需求,需要將十六進(jìn)制的字符串轉(zhuǎn)換成字節(jié)數(shù)組,通過Socket連接,調(diào)用硬件接口控制燈光的開關(guān)以及其他硬件的需求。

NSString *str = @"AA21f0c1762a3abc299c013abe7dbcc50001DD"

將里面的字符轉(zhuǎn)換到Byte數(shù)組中,如下

Byte buffer[] = { 0xAA, 0x21, 0xf0, 0xc1, 0x76, 0x2a, 0x3a, ... , 0x01, 0xDD }


@interface NSString (NSStringHexToBytes)

-(NSData*) hexToBytes ;

@end

@implementation NSString (NSStringHexToBytes)

-(NSData*) hexToBytes {

NSMutableData* data = [NSMutableDatadata];

int idx;

for (idx = 0; idx+2 <= self.length; idx+=2) {

NSRange range = NSMakeRange(idx, 2);

NSString* hexStr = [selfsubstringWithRange:range];

NSScanner* scanner = [NSScannerscannerWithString:hexStr];

unsignedint intValue;

[scanner scanHexInt:&intValue];

[data appendBytes:&intValue length:1];

}

return data;

}

@end

應(yīng)用:

NSData *data = [str hexToBytes];

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

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

  • NSString *str = @"AA21f0c1762a3abc299c013abe7dbcc50001DD"...
    iOS祎閱讀 336評論 0 0
  • 最近在忙一個(gè)藍(lán)牙項(xiàng)目,在處理藍(lán)牙數(shù)據(jù)的時(shí)候,經(jīng)常遇到進(jìn)制之間的轉(zhuǎn)換,藍(lán)牙處理的是16進(jìn)制(NSData),而我們習(xí)...
    代碼移動(dòng)工程師閱讀 1,682評論 0 1
  • 嘟噥嘟噥:最近接到一個(gè)任務(wù):在客戶端動(dòng)態(tài)生成RSA密鑰對,然后向服務(wù)器發(fā)送這個(gè)密鑰對中的公鑰字符串,由服務(wù)器進(jìn)行公...
    TimmyR閱讀 8,353評論 19 21
  • 想牽你的手 陪你到世界盡頭 全世界以你中心 看你快樂就已足夠 你是我的小蛋糕、
    4289閱讀 176評論 0 0
  • 燈火闌珊,看這座城市的黑夜很美! 有時(shí)候在想,如果沒有遇到你,或許我不會(huì)在這里逗留那么久,或許這里只會(huì)是我一個(gè)路過...
    云安ZzB閱讀 323評論 0 0

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