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