1

こんにちは、iOS の初心者です。私の活動の 1 つで、NSString があり、16 進数形式に変換したいと考えています。

    NSString  *str= 131003112444371;

long long decimalRepresentation = 131003112444371;
    NSLog(@"date %llx",decimalRepresentation);

    NSLog(@"Hex value of char is 0x%02llx",decimalRepresentation);

私はこれを使用しています結果0x772589fb51d3を取得し、これを抽出したいのですが772589fb51d3ではありません。これらの行を使用しているとき....

      NSString *str1=[NSString stringWithFormat:@"%llu",decimalRepresentation];

      NSLog(@"str %@",str1);


    NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"0x"];
    str1 = [[str1 componentsSeparatedByCharactersInSet:doNotWant]componentsJoinedByString:@""];
    NSLog(@"%@", str1); // => foobarbazfoo

しかし、この行は再びこの 16 進数値を文字列に変換します。この値 0x772589fb51d3 を 772589fb51d3 として抽出しません。

4

2 に答える 2

0

この質問の1つの可能な解決策:

+(NSString*)hexFromStr:(NSString*)str
{
NSData* nsData = [str dataUsingEncoding:NSUTF8StringEncoding];
const char* data = [nsData bytes];
NSUInteger len = nsData.length;
NSMutableString* hex = [NSMutableString string];
for(int i = 0; i < len; ++i)[hex appendFormat:@"%02X", data[i]];
return hex;
}
于 2013-10-03T06:27:35.933 に答える