//将十六进制字符串转换未二进制字符串
+ (NSString*)binaryStrFromHexStr:(NSString*)str{
NSString *totalBinaryStr = @"";
for (int i = 0;i < str.length;i++){
NSString *subStr = [str substringWithRange:NSMakeRange(i, 1)];
NSInteger subNumber = [self stringWithHexChar:subStr];
NSInteger multiple = 8;
NSString *binaryStr = @"";
for (int i = 4; i > 0; i--) {
binaryStr = [binaryStr stringByAppendingString:((subNumber / multiple > 0)? @"1" : @"0")];
subNumber = (subNumber >= multiple)?subNumber - multiple:subNumber;
multiple /= 2;
}
totalBinaryStr = [totalBinaryStr stringByAppendingString:binaryStr];
}
NSString *reverseStr = [self reverseStringWith:totalBinaryStr];
return reverseStr;
}
//十六进制字符转整数
+ (NSInteger)stringWithHexChar:(NSString*)hexStr{
const char *hexChar = [hexStr cStringUsingEncoding:NSUTF8StringEncoding];
int hexNumber;
sscanf(hexChar, "%x", &hexNumber);
return hexNumber;
}
//字符串逆序
+ (NSString )reverseStringWith:(NSString)str{
NSString *reverStr = @”“;
for (int i = 0; i < str.length; i++) {
reverStr = [reverStr stringByAppendingString:[str substringWithRange:NSMakeRange(str.length - i - 1, 1)]];
}
return reverStr;
}