我正在嘗試將十六進制值的nsstring轉換爲浮點值。將十六進制字符串轉換爲IEEE 754浮點數
NSString *hexString = @"3f9d70a4";
浮點值應該是= 1.230
。
我試圖解決這方面的一些方法是:
1.NSScanner
-(unsigned int)strfloatvalue:(NSString *)str
{
float outVal;
NSString *newStr = [NSString stringWithFormat:@"0x%@",str];
NSScanner* scanner = [NSScanner scannerWithString:newStr];
NSLog(@"string %@",newStr);
bool test = [scanner scanHexFloat:&outVal];
NSLog(@"scanner result %d = %a (or %f)",test,outVal,outVal);
return outVal;
}
結果:
string 0x3f9d70a4
scanner result 1 = 0x1.fceb86p+29 (or 1067282624.000000)
2.casting指針
NSNumber * xPtr = [NSNumber numberWithFloat:[(NSNumber *)@"3f9d70a4" floatValue]];
結果: 3.000000
這與Xcode無關。 – nhgrif
這是我工作的平臺,所以我認爲它可能會有用。你知道如何解決我的問題嗎? – ribbit
你應該向我們展示你的嘗試。事實上,如果您使用xcode或任何其他IDE編寫代碼,則無關緊要。 – vikingosegundo