10進値を取得し、それを16進に変換しようとしています。これはSCADAプログラム内のC#スクリプトです。以下は、16進数を12進数に変換します。
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;
}
}
しかし、私は反対の問題を抱えています-私が12月を16進数に変換しようとすると。私の理解では、以下は機能するはずですが、エラーが発生します。メソッド「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;
12行ではなく13行を使用することでエラーを回避できますが、この場合、DecからHexではなくHexをDecに変換しています。誰か助けてもらえますか?