繁体   English   中英

在C#中将整数转换为Ascii字符串

[英]Convert Integer to Ascii string in C#

我想将一个整数转换为3个字符的ascii字符串。 例如,如果整数是123,则我的ascii字符串也将是"123" 如果整数是1,那么我的ascii将是"001" 如果整数是45,那么我的ascii字符串将是"045" 到目前为止,我已经尝试过Convert.ToString但无法得到结果。 怎么样?

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

myString现在是“052”。 希望它会有所帮助

回答新问题:

你正在寻找String.PadLeft myInteger.ToString().PadLeft(3, '0')一样使用它myInteger.ToString().PadLeft(3, '0') 或者,只需使用"0"自定义格式说明符 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”格式字符串将数值转换为十六进制
  • String.Join(" ", ...)将它们全部重新组合在一起,中间有空格

这取决于你是否真的想要ASCII字符或者你想要文本。 以下代码将执行这两项操作。

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保存到文件中,但如果您使用的是string对象,则它们将以UTF-16编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM