【问题标题】:Convert ASCII Console Input to Hex将 ASCII 控制台输入转换为十六进制
【发布时间】:2015-02-20 01:16:21
【问题描述】:

我正在使用 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}

我希望有人可以帮助我。

【问题讨论】:

  • 我已经编辑了我的答案,看看是否有帮助。

标签: c# type-conversion hex ascii apdu


【解决方案1】:

要将整数转换为十六进制,请使用:(更多信息可以找到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

【讨论】:

  • 谢谢你,现在我得到了不带 0x 的输出,我需要它用于这个函数,我需要每个数字一个字节作为变量,例如 a=0x31,b=0x32, c=0,35 在这个 APDU byte[] WriteAPDU = { 0xFF, 0xD6, 0x00, 0x02, 0x10, 0x31, 0x32, 0x35}
【解决方案2】:

这是一个例子:

int d = 65;  // Capital 'A'

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2017-10-13
    • 2016-09-27
    • 2011-11-21
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多