将ASCII控制台输入转换为十六进制

时间:2014-12-21 21:58:29

标签: c# type-conversion hex ascii apdu

我在c#中编程并尝试将控制台输入转换为Hex。 输入是1-256之间的数字(例如125) 转换后的数字应如下所示:

fpr 125: 0x31, 0x32, 0x35

我已经尝试使用以下方法解决问题:

byte[] array = Encoding.ASCII.GetBytes(Senke)

但它始终显示byte[]

我需要这个转换来创建一个APDU,通过我的智能卡应用程序在我的智能卡上写信息,最终的Apdu将如下所示:

{ 0xFF, 0xD6, 0x00, 0x02, 0x10, 0x31, 0x32, 0x35}

我希望有人能帮助我。

2 个答案:

答案 0 :(得分:0)

要将整数转换为十六进制,请使用:(可以找到更多信息here

int devValue = 211;
string hexValue = decValue.ToString("X");

进一步详细说明,以下内容将产生您想要的输出:

string input = "125"; // your input, could be replaced with Console.ReadLine()

foreach (char c in input) {
    int decValue = (int)c; // Convert ASCII character to an integer
    string hexValue = decValue.ToString("X"); // Convert the integer to hex value

    Console.WriteLine(hexValue);
}

代码会产生以下输出:

31
32
35

答案 1 :(得分:0)

以下是一个例子:

int d = 65;  // Capital 'A'

string h= d.ToString("X");  // to hex
int d2 = int.Parse(h, System.Globalization.NumberStyles.HexNumber); //to ASCII