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

本文关键字:十六进制 转换 输入 ASCII 控制台 | 更新日期: 2023-09-27 18:34:49

我正在用 c# 编程并尝试将控制台输入转换为十六进制。输入是 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}

我希望有人可以帮助我。

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

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

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
下面是

一个示例:

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