将十进制(用户字符串)转换为带有0x前缀的十六进制

时间:2015-12-10 02:51:28

标签: c# winforms hex decimal data-conversion

我试图从textBox中获取用户定义的十进制值,转换为十六进制(带有0x)前缀,然后将该值存储为整数。我目前停留在获取0x前缀,但也许有更合适的方法来实现这一点。

        string decimalString = textBox1.Text;

        //Convert decimalString string into an int
        int decimalNumber = int.Parse(decimalString);
        //Convert decimalNumber to a hex string
        string hexString = decimalNumber.ToString("X");

        Console.Write(decimalNumber);

        //TextBox Input: 151
        //Console Output: 97
        //Desired Output: 0x97 (as a string, but would like to assign to int if possible).
        int finalDesiredOutput = 0x97;

希望我能解释清楚。

在这个项目中,我尝试用0到2600之间的十进制值(用户输入的值)替换标题中的第13个字节。用户输入小数而不是十六进制值(即2600,而不是A28)更容易。

2 个答案:

答案 0 :(得分:3)

String.Format()

怎么样?
 string hexString =String.Format("0X{0:X}", decimalNumber);

答案 1 :(得分:0)

StringBuilder sb = new StringBuilder();

string hex = "C26B3CB3833E42D8270DC10C";


for (int i = 0; i < hex.Length; i++)
{
    if(i%2==0)
    {
         sb.Append(",0x").Append(hex.Substring(i, 2));
    }
}
Console.WriteLine(sb.ToString());