2012-07-30 36 views
2

我想將一個整數轉換爲3個字符的ascii字符串。例如,如果整數是123,我的ascii字符串也將是"123"。如果整數是1,那麼我的ascii將是"001"。如果整數是45,那麼我的ascii字符串將是"045"。到目前爲止,我已經嘗試Convert.ToString,但無法獲得結果。怎麼樣?在C中將整數轉換爲Ascii字符串#

+0

你想要ASCII或文本?一個「字符串」會更容易使用,但不是每個字符一個字節。 – 2012-07-30 05:41:04

回答

5

回答新問題:

您正在尋找String.PadLeft。使用它像myInteger.ToString().PadLeft(3, '0')。或者,只需使用"0" custom format specifier即可。像myInteger.ToString("000")


回答原來的問題,返回一個字符串像"0x31 0x32 0x33"

String.Join(" ",myInteger.ToString().PadLeft(3,'0').Select(x=>String.Format("0x{0:X}",(int)x)) 

說明:

  • 第一ToString()您的整數123轉換成它的字符串表示"123"
  • PadLeft(3,'0')墊返回的字符串出使用0作爲填充字符
  • 字符串三個字符是可枚舉作爲char陣列,所以.Select選擇到該陣列
  • 對於數組中的每一個字符,它的格式0x則字符
  • 鑄造的價值charint將讓你得到的ASCII值(你可以跳過這個演員,我不知道)
  • 的「X」格式的字符串轉換一個numeri C值爲十六進制
  • String.Join(" ", ...)用空格把它全部回來一起在這取決於如果你真的想ASCII字符
  • 之間
+0

你能解釋一下你的答案嗎? – maniac84 2012-07-30 05:38:48

+0

@ maniac84我添加了一個解釋。希望它有幫助 – 2012-07-30 05:43:25

+0

拍攝,我想你想要它填充到三個字符的字符串。 – 2012-07-30 05:45:04

4

,或者如果你想要的文字。下面的代碼將做到這兩個。

int value = 123; 
// Convert value to text, adding leading zeroes. 
string text = value.ToString().PadLeft(3, '0'); 
// Convert text to ASCII. 
byte[] ascii = Encoding.ASCII.GetBytes(text); 

要知道,.NET不使用ASCII文本操作。您可以將ASCII保存到文件中,但如果您使用的是對象,則它們使用UTF-16編碼。

10
int myInt = 52; 
string myString = myInt.ToString("000"); 

myString現在是「052」。希望它會幫助