【问题标题】:iOS:convert decimal into 2 byte hex formatiOS:将十进制转换为 2 字节十六进制格式
【发布时间】:2015-04-18 05:16:03
【问题描述】:

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

            int a=48;

值 48 存在,需要在 2 个字节中填充 48

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

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

【问题讨论】:

  • 你能给我一个拒绝投票的理由吗?或者你不明白这个问题
  • 您发布的代码中的fill 是什么?提供有关您正在寻找的转换的更多详细信息。您的问题非常混乱和不清楚。
  • 你成为堆栈溢出警察的牺牲品......或者我喜欢称之为 JERKS。不要把它当作个人,你可能没有他们那么聪明……我们都不是。也就是说,你的问题在上下文中很弱,我同意 rmaddy,什么是填充?

标签: ios objective-c hex decimal bytearray


【解决方案1】:

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

希望这会有所帮助。

【讨论】:

  • 十进制格式的48应该装在2个字节中。可能吗
  • 呃,那是什么意思?我的最后一个例子,在 byte1 和 byte2 中存储 48 不符合这个标准吗?
猜你喜欢
  • 1970-01-01
  • 2016-12-18
  • 2013-09-12
  • 2010-10-15
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 2014-03-11
相关资源
最近更新 更多