C#将整数转换为ASCII字节

时间:2012-10-05 10:38:33

标签: c#

int i =5;
byte j[2];

以上就是我所拥有的。我希望5等于十六进制0x35,即ASCII中的'5'。如何编写转换以便j[0]= i = 0x35

6 个答案:

答案 0 :(得分:1)

只需在Google查询中键入“ascii”并按第一次点击,您会看到数字的偏移量为48。

有点笨拙但总是正确的方法是使用Encoding类:

 byte[] j = Encoding.ASCII.GetBytes(i.ToString());

它会得到一个长度为1的数组,这是正确的结果。

答案 1 :(得分:0)

只需将0x30添加到i并再次将结果转换为byte

j[0] = (byte)(i + 0x30);

答案 2 :(得分:0)

你可以使用char / int算法

j[2] = '0' + (byte)i;

答案 3 :(得分:0)

使用此:

j[0] = (byte)('0' + i);

这使得当我为0时,它将只是我,并且对于i的每次增加,它也会增加。

答案 4 :(得分:0)

由于.NET不使用ASCII进行字符串编码,因此“正确”的方法有点迂回:

byte[] result = Encoding.ASCII.GetBytes(i.ToString());

(这需要导入System.Text名称空间。)

由于ASCII编码非常简单(即对应于.NET的前127个代码点的内部字符编码),您还可以欺骗并使用其他答案中提出的方法(即添加'0'或{ {1}}并明确转换为0x30)。

答案 5 :(得分:0)

您也可以使用C:\Program 。它解决了一个相关的问题。

char