2014-10-20 82 views
-7

测试用例:字符串编码程序

banagalore (of type String) 

预期输出:

{30,20,21,92,20,80,32,31,02} 

我已经转换他们使用C#为ASCII,现在我不能够将它们转换成序列,请建议一些想法。

代码:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Program p = new Program(); 
      Console.WriteLine("Enter The String "); 
      string str = Console.ReadLine(); 
      byte[] b = Encoding.ASCII.GetBytes(str); 
      foreach (var item in b) 
      { 
       Console.WriteLine(item); 
      } 

     } 

    } 
} 
+2

ASCII?你能详细说一下吗? – 2014-10-20 14:44:20

+0

只需要将字符串转换为该序列,我有上面提到的测试用例之一。我认为逻辑必须将字符串中的每个字符转换为ASCII值,然后找出必须做什么,我陷入困境之后 – Vinodh 2014-10-20 14:50:32

+2

SO并不是真正解决难题的地方 - 当找到什么操作将“banagalore”转换为“ {30,20,21,92,20,80,32,31,02}“可能有趣,但不适合SO。 (即,在我知道的任何编码中,它显然不是字符代码) – 2014-10-20 14:50:47

回答

0

A XOR口罩是一个选项。

byte[] input = Encoding.ASCII.GetBytes("bangalore"); 
var known_result = new byte[] { 30, 20, 21, 92, 20, 80, 32, 31, 02 }; 
var computed_mask = new byte[input.Length]; 

for (var i = 0; i < input.Length; i++) 
{ 
    computed_mask[i] = (byte)(known_result[i]^input[i]); 
} 

byte[] test = Encoding.ASCII.GetBytes("bangalore"); 
for (var i = 0; i < test.Length; i++) 
{ 
    test[i] ^= computed_mask[i]; 
} 
Console.WriteLine(string.Join(",", test));