簡體   English   中英

在C#中將十六進制數轉換為2字節字符串表示法

[英]Convert Hex Number into 2 Byte String Notation in C#

我正在尋找實現這一目標的最簡單方法:

num = 2376.75 => 0949(十六進制轉換為2376.5到2377的四舍五入)。Num也可以是負數。

我很丑陋的代碼來做到這一點,幸運的是對我來說:

 val1 = 2376.75
    int val = Convert.ToInt16( Math.Round(val1));
    valStringLsb = ((byte)val ).ToString("X");
     if (valStringLsb.Length == 1)
    {

      valStringLsb = "0" + valStringLsb;
    }

    string valStringmsb = ((byte)(si >> 8)).ToString("X");
    int k = valStringmsb.Length;
    if (k == 1)
    {
       valStringmsb = "0" + valStringmsb;
    }
    else
    {

    valStringmsb = ((byte)(val >> 8)).ToString("X").Equals("0") ? "00" : (((byte)(val >> 8)).ToString("X")); 
    }

    valString += (valStringLsb + valStringmsb);

有沒有簡單的方法或API可以實現這一目標? 我要執行此操作的原因是我希望0949值而不是2377的949值。

如果您想簡單起見,可以使用以下方法:

Func<int, string> DecimalToHex = new Func<int, string>((input) => 
{
    return Convert.ToString(input, 16).PadLeft(4, '0');
});

重要的部分是Convert因此您不必使用Func<>方法。 如果要使用此方法,則必須提供四舍五入的數字。 您不能直接在此函數中提供double。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM