iOS:将十进制转换为2字节十六进制格式

时间:2015-02-17 13:29:23

标签: ios objective-c hex decimal bytearray

我有十进制值48我需要将其转换为2个十六进制字节格式。我已编写如下代码

            int a=48;
在值48中的

是需要填充48个2字节

     fill data[0]=/*converted data*/
     fill data[1]=/*converted dara*/

请帮助我提供示例代码,因为我是目标c编码的新手。转换后的数据包含格式为ex:0x03,0x04的数据 我怎样才能填写数据。请帮帮我

1 个答案:

答案 0 :(得分:2)

2字节十六进制格式......呵呵?!

我不太确定我理解你的问题,但也许这会有所帮助:

int a = 48;
NSString* str = [NSString stringWithFormat:@"%02x", a];     //  "30"

int byte1 = [str characterAtIndex:0];       // 51  (ASCII code for '3')
int byte2 = [str characterAtIndex:1];       // 48  (ASCII code for '0')

返回两个字节,表示构成十六进制数“30”的ASCII字符。

如果你真的希望字节包含值3和0,那么它就更容易了:

int a = 48;
int byte1 = a / 16;       // 3
int byte2 = a % 16;       // 0

类似地,如果您希望将48值转换为0x0030,并将byte1设置为0x00并将byte2设置为0x30,则只需执行以下操作:

int a = 48;
int byte1 = a % 256;       // 48
int byte2 = a / 256;       // 0

希望这有帮助。