int i =5;
byte j[2];
以上就是我所拥有的。我希望5等于十六进制0x35,即ASCII中的'5'。如何编写转换以便j[0]= i = 0x35
?
答案 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