簡體   English   中英

C#:具有重新定義的十六進制值的文本到十六進制的轉換

[英]C# : Text to Hex conversion with redefined hex values

我正在嘗試編寫一個將ASCII文本轉換為十六進制值的程序。 問題是我正在一個項目中使用與標准字符不同的ASCII字符十六進制值,因此我必須將預定義的字符集(使用“靜態字典”)合並到轉換中。

我的意圖是使用2個文本框進行設置,一個文本框輸入ASCII輸出,另一個文本框輸出十六進制值。

如果輸入ASCII字符串“ Jack”,則希望窗口返回4b 62 64 6c。 (是的,所有十六進制值都移位了一個,不要問。。。不是我的電話)

我不確定如何執行此操作,並強制其使用靜態詞典定義的值。

將您的字典定義為Dictionary<char, int>並將每個char作為鍵,並將修改后的十六進制值作為value

這樣,在轉換時,您只需在字典中查找十六進制值。

var x = MyStrangeHexValuesThatWeShouldntAskAbout[myChar];

此解決方案僅適用於ASCII字符:

public static string ToMySpecialAsciiString(string input)
{
    StringBuilder result = new StringBuilder();

    foreach (char c in input)
        result.AppendFormat("{0:x2} ", c + 1);

    return result.ToString();
}

請注意,字符ÿ不能正常工作(因為它的值為255,並向其加1將溢出一個字節)。 但是,由於僅指定ASCII,因此永遠不會出現該字符。

暫無
暫無

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

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