2014-09-09 15 views
0

У меня есть программа, которая использует текстовые строки шифрования, я просто хочу написать простую программу, которая будет распечатывать весь расшифрованный текст для меня.C# Преобразование строки в байты

Например: Скажем, что буква «A» = байт «2C»; Я хотел бы ввести букву A в программу и распечатать «2C» для меня.

Кто-нибудь знает простой способ сделать это?

Большое спасибо!

+3

Note, любое «шифрование», который состоит из сопоставления букв, как «A» = «2С» есть * ужасное * шифрование. –

+3

, вероятно, нужно сделать домашнее задание самостоятельно :) – codebased

+0

Согласен, к сожалению, я сам не создал шифрование. – user3809661

ответ

1

К 2C Я думаю, вы имеете в виду шестнадцатеричное представление буквы A?

Это было бы что-то вроде String.Format("{0:X}", Convert.ToInt32('A'));

Update после осветления от OP

Вы либо должны предопределить все ваши поддерживаются набор символов, как это.

static Dictionary<char, int> cyper = new Dictionary<char, int> 
{ 
{'A', 44}, 
{'B', 45}, 
{'C', 46}, 
{'D', 47}, 
{'E', 48}, 
{'F', 49}, 
// .. etc 
}; 

// ...

 Console.WriteLine(string.Format("{0:X}", cyper['A'])); // will print 2C 

Но это не кажется очень хорошим шифрованием, если все находится рядом с несколькими значениями.

Другим подходом было бы применение схемы кодирования. Математическая оценка времени выполнения на входе, которая будет оцениваться до 2C (шифрование) и сможет принимать 2C и оценивать A (расшифровывать).

+0

Это именно то, что я имею в виду, да. Спасибо. – user3809661

+5

Это выводит '' A '' –

+0

Ах да, хороший вызов, забыли шаг, вы должны сначала преобразовать его в базовый int. – Ternary

0

Я хотел бы предложить вам попробовать так:

byte[] b = System.Text.Encoding.UTF8.GetBytes (yourString); 
+1

С помощью этого метода '' A '' → '[0x41]'. Если OP ожидает другое сопоставление, например. '' '' '' [0x2C] ', это не сработает. –

+1

@ p.s.w.g: - Хм ... даёт ощущение. Но я думал, что это правильный способ продолжить, когда вы хотите ** преобразовать ** строку в байт, иначе это будет просто изменение формата, например 'String.Format (" {0: X} ", (int) ' A '); 'это не преобразование в реальном смысле. Stumped :( –

+0

Минус 41 (я думаю) из результата, чтобы получить числовой индекс (1 - 52), если это UNICODE –

Смежные вопросы