【问题标题】:C# : Text to Hex conversion with redefined hex valuesC#:使用重新定义的十六进制值将文本转换为十六进制
【发布时间】:2014-11-03 19:41:42
【问题描述】:

我正在尝试编写一个将 ASCII 文本转换为十六进制值的程序。问题是我正在处理一个项目,它对 ASCII 字符使用与标准不同的十六进制值,因此我必须将预定义的字符集(使用“静态字典”)合并到转换中。

我的目的是设置 2 个文本框,一个用于输入 ASCII 码,另一个用于打印十六进制值。

如果我输入 ASCII 字符串“Jack”,我希望一个窗口返回 4b 62 64 6c。 (是的,所有的十六进制值都移了一个,不要问....不是我的电话)

我不确定如何执行此操作并强制它使用静态字典定义的值。

【问题讨论】:

    标签: c# hex ascii converter


    【解决方案1】:

    将您的字典定义为Dictionary<char, int>,并将每个char 作为键,将修改后的十六进制值作为value

    这样当你转换时,你只需在字典中查找十六进制值。

    var x = MyStrangeHexValuesThatWeShouldntAskAbout[myChar];
    

    【讨论】:

      【解决方案2】:

      此解决方案仅适用于 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,因此该字符将永远不会出现。

      【讨论】:

        猜你喜欢
        • 2011-08-04
        • 2017-07-31
        • 2013-07-20
        • 2012-06-17
        • 1970-01-01
        • 2014-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多