2011-05-30 147 views
1

我有串 在这里,在多个值是我的字符串的例子如何转换的NSString二进制和二进制到十六进制

str1 = @"20AB" 

str2 = @"298C30:2FC0A0:2FC09C:FFFFFFFF:2FDFCD34:00" 

str3 = @"4ffd565372df51089f2c824526f4f95a13daa867" 

str4 = hexa(binary(str1 + str2 +str3)) 

即我需要转换的字符串为二进制,然后到六然后将所有3个字符串串联在一个字符串中。

请帮我如何做到这一点。

在此先感谢

+0

你是什么意思与“转换为二进制文件,然后为十六进制”?你是否想要二进制和十六进制的字符串表示(即010101 ...和ff4234 ...),以及为什么要使用中间“二进制”形式?或者你想要的原始字节? – vicvicvic 2011-05-30 11:51:38

+0

我正在执行某种加密。为此我需要这样的价值。所以所有的字符串值都不容易识别,这就是为什么我需要这种双重转换。 – 2011-05-30 11:54:34

回答

0

我不知道很多的OBJ-C或iPhone SDK的,但在C您的解决方案将是沿着这些路线:

  • 使用strtol()到字符串转换成数字(检查指针通过第二个参数返回到功能'\0'来分辨是否达到结束的字符串或仅仅是下一':'分隔符);
  • 使用sprintf()%x转换符再次开启数字成字符串。

不幸的是你的问题是不是更精确的答案不够精确。

+0

感谢您的答复,但我的简单的问题只是转换的二进制值给定的字符串,然后将这些二进制值转换为十六进制值。并将所有3个六进制值组合成一个单一的合成。 – 2011-05-30 12:07:29

+1

@iPhone Fun:这个问题没有什么简单之处,而且我们的猜测和假设也很多。这些冒号是否在分隔值为'str2'的分隔符中,还是应该被忽略? (我认为它们是分隔符)。“二进制”值意味着什么? (我认为你的意思是“数字”。)你对“concat”/“组合”这些值有什么意思?加起来?串联?什么是所需的宽度/分隔符?你想要一个领先的'“0x”'去与那个?你想要小写[a-f]还是大写[A-Z]?或者没有关系?精确的需求规格是一种技能...... – DevSolar 2011-05-30 12:37:51

+0

我将执行一些服务器认证以注册应用程序用户。同时,我需要用户的一些数据备份用户的权限,为此我需要创建令牌。 str2是有需要的分隔符。以及通过创建二进制文件,然后它的hexa值将创建少量的我的令牌值。我的服务器将再次通过将hexa转换为二进制来解码它的原始值。而情人和上流无关紧要。而concat意味着我需要有一个包含所有2个字符串hexa值的字符串。也感谢有兴趣的人士。 – 2011-05-30 14:58:46

0

您可以使用NSScanner用于转换为十六进制和读取字节的二进制数据...