1

「1234674」などの整数の6桁の数値をObjective-Cで16進数の4バイトのNSDataに変換するにはどうすればよいですか?

4

1 に答える 1

3

データはバイトであり、バイトは16進数ではなくビットです。16進数はデータを解釈するための単なる方法です。ARMのintは32ビットです(int32_tまたはsizeofを使用できます)

できるよ

int x = 1234674;
NSData *myData = [NSData dataWithBytes:&x length:sizeof(int)]

次に、そのデータを16進数として出力する場合は、次のようにします。

char c[4] = [myData bytes];
NSLog("%@",[NSString stringWithFormat:@"%02X%02%02X%02",c[0],c[1],c[2],c[3]]);

印刷したり、16進文字列に変換したりするだけの場合は、次のようなcharポインタを使用できます。

char *c = &x;
NSString *hexStr = [NSString stringWithFormat:
    @"%02X%02%02X%02", *c, *(c+1), *(c+2), *(c+3)];

私はコーディングを試みませんでしたが、機能しているはずです。

于 2013-02-27T23:40:20.917 に答える