簡體   English   中英

轉換int32->十六進制->字符串

[英]Converting int32 -> hex -> string

我正在從內存中讀取一個整數(下面的i )。 要將其轉換為我需要的字符,請執行以下操作:

int i = 99;
string hex = 99.ToString("X"); //"63"
string readable = hex.FromHex(); //"c"

public static string FromHex(this string hex)
{
    hex = hex.Replace("-", "");
    byte[] raw = new byte[hex.Length / 2];
    for (int i = 0; i < raw.Length; i++)
    {
        raw[i] = Convert.ToByte(hex.Substring(i * 2, 2), 16);
    }
    return Encoding.UTF8.GetString(raw);
}

但是我想有一種更簡單的方法可以做到這一點?

您可以將其直接轉換為char

char myChar = (char)99;

或使用:

char myChar = Convert.ToChar(99);

嘗試

int i = 99;
var bits = BitConverter.GetBytes(i);
Console.Write("Char: {0}", Encoding.UTF8.GetString(bits));

假設使用UTF8編碼,這應該可以工作:

byte[] bytes = BitConverter.GetBytes(i).Where(x => x != 0).ToArray();
string result = Encoding.UTF8.GetString(bytes);

但是請注意,運行此機器的機器的字節順序很重要。

暫無
暫無

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

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