试图取一个十进制值并将其转换为十六进制。这是 SCADA 程序中的 C# 脚本。以下将十六进制转换为十二月就好了:
using System;
using MasterSCADA.Script.FB;
using MasterSCADA.Hlp;
using FB;
using System.Linq;
public partial class ФБ : ScriptBase
{
public override void Execute()
{
string hexValue = InVal;
int num = Int32.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
OutVal = num;
}
}
但是我遇到了相反的问题-当我尝试将 Dec 转换为 Hex 时。据我了解,以下应该可以工作,但它会给出错误:方法'ToString'没有重载在第12行采用'1'参数
11 int? decValue = InVal;
12 string hexValue = decValue.ToString("X");
13 //string hexValue = string.Format("{0:F0}", decValue);
14 uint num = uint.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
15 OutVal = num;
我可以通过使用第 13 行而不是第 12 行来避免该错误,但在这种情况下,我将 Hex 转换为 Dec 而不是 Dec 转换为 Hex。有人可以帮忙吗?