Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для jlevistk
239 / 234 / 8
Регистрация: 05.05.2011
Сообщений: 1,553

ASCII в символы?

13.06.2011, 18:22. Показов 4870. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Столкнулся с такой проблемой, сейчас занят написание лаб. работы по хэш таблицам.
Решил реализовывать посредством листов. Но проблема в другом, при преобразовании кода ASCII в символы, отображаются знаки вопроса. Что я не так делаю?


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
 
struct Hahs
{
    public string Hash_hode;
    public int num;
    public Hahs(string h, int n)
    {
        Hash_hode = h;
        num = n;
    }
}
class Hash_table
{
    static void Hash_tbl()
    {
        //ccAAcc, C(48-57), A(65-90);
        string[] piece_of_hash = new string[6]; //kusok hash'a
        string full_hash_num; //full hash
        Random rnd1 = new Random(); // randomize
        int t = 10; //kol-vo segmentov 
        List<Hahs> HTable = new List<Hahs>(t); //list, on je tablica
        int test = 0;
        string tst;
        for (int i = 0; i < t*3; i++)
        {
            test = rnd1.Next(48, 57);
            piece_of_hash[0] = rnd1.Next(48, 57).ToString();
            piece_of_hash[1] = rnd1.Next(48, 57).ToString();
            piece_of_hash[2] = rnd1.Next(65, 90).ToString();
            piece_of_hash[3] = rnd1.Next(65, 90).ToString();
            piece_of_hash[4] = rnd1.Next(48, 57).ToString();
            piece_of_hash[5] = rnd1.Next(48, 57).ToString();
            for (int j = 0; j < piece_of_hash.Length; j++)// в символы преобразование здесь.
            {
                byte[] srcb = System.Text.ASCIIEncoding.ASCII.GetBytes(piece_of_hash[j]);
                System.Text.UnicodeEncoding ue = new System.Text.UnicodeEncoding();
                string dst = ue.GetString(srcb);
                Console.WriteLine(dst);
            }
            
            full_hash_num = piece_of_hash[0] + piece_of_hash[1] + piece_of_hash[2] + piece_of_hash[3] + piece_of_hash[4] +
                            piece_of_hash[5];//skladivaem
            Console.WriteLine(full_hash_num);
 
        }
    }
    static void Main()
    {
        Hash_tbl();
    }
}
Миниатюры
ASCII в символы?  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2011, 18:22
Ответы с готовыми решениями:

Вывести символы таблицы ASCII
Задача: Вывести на экран символы таблицы ASCII для введённых чисел от A до B. Написал это int a = int.Parse(Console.ReadLine()); ...

Как удалить ASCII символы из строки
Есть строка, из нее нужно удалить ASCII символы, подскажите как это сделать?

Получить символы из байтов в кодировке ASCII (DOS)
Доброго времени суток. Имею файл (в приложении изображение), хотел из него извлечь имя параметра, получил в массиве набор байт, но получить...

5
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
13.06.2011, 19:52
Не знаю как решить эту проблему, но точно знаю что проблема при преобразовании массива с байтами в строку. Т.к. ASCII и другие кодировки используют 8 бит на кодирование 1 символа, а кодировка Unicode 16 бит. То есть идёт потеря в 2 раза. Возможно я и не прав. А кодировку Unicode по лабораторной задали или ты сам для себя так решил?
0
 Аватар для jlevistk
239 / 234 / 8
Регистрация: 05.05.2011
Сообщений: 1,553
13.06.2011, 20:18  [ТС]
Сам для себя так решил. Ввиду того, что других и не знаю

Добавлено через 4 минуты
Я конечно подозреваю, что можно сделать как-то так:

C#
1
2
3
4
5
6
7
8
9
10
int n;
string s;
switch (n)
{
case 48: s = "0";
return;
case 90: s = "z";
return;
}
//и тд.
но это не эстетично по моему.
0
 Аватар для ushim
179 / 180 / 55
Регистрация: 01.06.2011
Сообщений: 507
13.06.2011, 20:29
Я посмотрел байты. Если строка "56" в кодировке ASCII представляется как 53 54. То та же самая строка только в Unicode будет представляться как 53 0 54 0. То есть на число просто добавляется цифра 0. Исходя из этого можно сделать новый массив байтов.

И заменить цикл for на мой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (int j = 0; j < piece_of_hash.Length; j++)
            {
                byte[] srcb = Encoding.ASCII.GetBytes(piece_of_hash[j]);
 
                byte[] srcb2 = new byte[4] 
                {
                    srcb[0],
                    0,
                    srcb[1],
                    0
                };
 
                string dst = Encoding.Unicode.GetString(srcb2);
                Console.WriteLine(dst);
            }
Наверное тут должно быть всё как надо
1
 Аватар для jlevistk
239 / 234 / 8
Регистрация: 05.05.2011
Сообщений: 1,553
13.06.2011, 20:51  [ТС]
ммм.. всеравно что-то не так. вместо символов идут аски коды.
Попробую сейчас въехать...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
     {
                byte[] srcb = Encoding.ASCII.GetBytes(piece_of_hash[j]);
 
                byte[] srcb2 = new byte[4] 
                {
                    srcb[0],
                    0,
                    srcb[1],
                    0
                };
 
                string dst = Encoding.Unicode.GetString(srcb2);
                
                Console.WriteLine(j + " 123 " + dst);
            }
Миниатюры
ASCII в символы?  
0
 Аватар для jlevistk
239 / 234 / 8
Регистрация: 05.05.2011
Сообщений: 1,553
13.06.2011, 22:11  [ТС]
Блин, извиняюсь, это я дурак. Это вообще нафик делать не надо в лабе=(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2011, 22:11
Помогаю со студенческими работами здесь

Как заставить компьютер проверять символы по ASCII коду?
int index = listBox1.SelectedIndex; string str = (string)listBox1.Items; int len = str.Length; ...

Из форматной строки и символа требуется получать все ASCII символы
Есть &quot;{0}&quot;,(char)AscCode требуется получить, пропустив через String.Format(), массив байтов (всех ASCII символов 0-255). Премного...

Все символы нужнo перевести в ASCII
Доброго времени суток, у меня такая проблема, не могу сделать программу такого типа вот задание: Вводим с консоли текст(предложение),...

символы ascii
system(&quot;color A&quot;); SetConsoleCP(1251); SetConsoleOutputCP(1251); srand(static_cast&lt;unsigned int&gt;(time(0))); const int pole =...

Ascii символы
Добрый день, подскажите почему неправильно выводятся русские заглавные буквы? Английские выводятся. void ascii( const char* text, char*...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru