VirQ. Приведение типа byte к char в C#
Язык C# входит в ТОП-5
самых популярных языков
программирования
Главная / Приведение типов /
Приведение типа byte к char
Статей на сайте: 61

Приведение типа byte к char


В памяти компьютера заложена таблица соответствий букв и их порядкового номера. Это называется таблица ASCII
Например, английская заглавная А = 65, буква Z = 90, восклицательный знак "!". И так далее. Это никогда не меняется.
Тип byte (числа) и char (буквы) неразрывно связаны.
Например, к букве "прибавить" 4. Тогда какую букву мы получим. Ну, например, если от А посчитать 4 буквы, мы получим Е.
В коде это будет выглядеть так:
[code] char x = 'A'; char b = (char)(x + 4); Console.WriteLine(b); Console.ReadKey(); [/code]
В данном случае во 2 строке переменная "х" автоматически была приведена к byte. И мы получили строку
[code] char b = (char)(65 + 4); [/code]
Ну а далее идёт приведение тип byte к char:
[code] char b = (char)69; [/code]
И мы получаем букву "Е".
Такой код удобно использовать в небольшой программе. Задаём номер буквы английского алфавита и получаем эту букву:
[code] Console.WriteLine("Введите № буквы"); int n = int.Parse(Console.ReadLine()); char ch = (char)(64 + n); Console.WriteLine("Это буква " + ch); Console.ReadKey(); [/code]
В итоге программа работает так:
Console
×
Введите № буквы
1
Это буква A

Console
×
Введите № буквы
25
Это буква Y

Более расширенный метод с использованием условий:
[code] Console.WriteLine("Введите № буквы"); int n = int.Parse(Console.ReadLine()); if (n < 1 | n > 26) Console.WriteLine("Буквы должны лежать в диапазоне от 1 до 26"); else { char ch = (char)(64 + n); Console.WriteLine("Это буква " + ch); } Console.ReadKey(); [/code]
И при попытке ввести число за диапазоном 1..26 получим предупреждение:
Console
×
Введите № буквы
88
Буквы должны лежать в диапазоне от 1 до 26

Если вы хотите, скажем, получить код буквы, знака или цифры, делается это так:
[code] char ch = '#'; byte n = (byte)ch; Console.WriteLine(n); Console.ReadKey(); [/code]
или короче:
[code] char ch = '#'; Console.WriteLine((byte)ch); Console.ReadKey(); [/code]
или ещё короче:
[code] Console.WriteLine((byte)'#'); Console.ReadKey(); [/code]

Дополнительная информация о том, как вывести результат в консоли или WinForm