2011-05-30 139 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用於轉換爲十六進制和讀取字節的二進制數據...