- (NSInteger)singnedIntegerFromHexString: (NSString *)str{
NSInteger decimalism = 0;
if (([self decimalFromHexString:str] ^ 0x7F) > 127) {
decimalism = [self decimalFromHexString:str] - 256;
} else {
decimalism = [self decimalFromHexString:str];
}
return decimalism;
}
- (NSInteger)decimalFromHexString:(NSString *)str {
unsigned int result;
NSScanner* scanner = [NSScanner scannerWithString:str];
[scanner scanHexInt:&result];
return result;
}
// 使用:
NSString *newHexStr =@"BB";///16进制数
NSString *newIntStr = [NSString stringWithFormat:@"%ld",[self singnedIntegerFromHexString:newHexStr]];
// 输出: