
![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Ademon |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите написать программу, для перевода кирилицы(или хотябы латинских букв) в бинарный код. Заранее спасибо !
![]() |
Федосеев Павел |
![]()
Сообщение
#2
|
Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Все символы в кодировке ascii занимают 1 байт.
Это я к тому, что типы char и byte - почти одно и то же. Различными их делает компилятор Pascal (из-за строгой типизации языка). Но есть возможность приведения типов (typecast) program Typecast;
var
c: char;
b: byte;
begin
c := 'f';
b := byte( с );
writeln('Char: ', c);
writeln('Byte: ', b);
end.
Это идея. А дальше - приводи попытки решения. Сообщение отредактировано: Федосеев Павел - |
Ademon |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Все символы в кодировке ascii занимают 1 байт. Это я к тому, что типы char и byte - почти одно и то же. Различными их делает компилятор Pascal (из-за строгой типизации языка). Но есть возможность приведения типов (typecast) program Typecast;
var
c: char;
b: byte;
begin
c := 'f';
b := byte( с );
writeln('Char: ', c);
writeln('Byte: ', b);
end.
Это идея. А дальше - приводи попытки решения. Не могли бы вы скинуть полную версию данной программы ? Просто я новенький и наврятле смогу доделать сам =) Надеюсь на вас, заранее спасибо |
Федосеев Павел |
![]()
Сообщение
#4
|
Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
То, что я привёл - это пояснительный материал, т.е. другой версии - нет.
Я не понимаю условие задачи, поэтому не могу и что-либо решать. Попробуй самостоятельно. Как я припоминаю, в школе в 9 классе на освоение конструкций BASIC мне понадобилась 1 неделя, на Pascal - 2 недели. Т.е. это всё не сложно. |
Ademon |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
То, что я привёл - это пояснительный материал, т.е. другой версии - нет. Я не понимаю условие задачи, поэтому не могу и что-либо решать. Попробуй самостоятельно. Как я припоминаю, в школе в 9 классе на освоение конструкций BASIC мне понадобилась 1 неделя, на Pascal - 2 недели. Т.е. это всё не сложно. Насчет условия: необходимо написать программу ,чтобы она исходную букву(А,б,в и т.д.) переводила в двоичный код. |
Федосеев Павел |
![]()
Сообщение
#6
|
Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Ну вот, мой пример это и выполняет.
Если исходные данные у тебя строка - то пройдись по всем символам строки в цикле и распечатай двоичное представление каждого символа. |
Ademon |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
Федосеев Павел |
![]()
Сообщение
#8
|
Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 481 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
Sorry, в первом посте был термин "бинарный код", а под это определение попадает и тип byte.
А ты подумай, как можно из байта получить строку символов из 0 и 1. Побитовые операции, сдвиги учил? Ну вот, после преобразования символа в число, делаешь преобразование числа в строку символов из 0 и 1. Берёшь переменную m - маску - равную (1 shl 7) = $80 и проверяешь на ноль результат побитового умножения на число ( if (m and b) = 0 ). Если 0, то в строку s дописываешь символ "0", иначе - символ "1". Потом сдвигаешь маску на 1 вправо и повторяешь проверку. И так 8 раз. В результате - строка с двоичным представлением твоего байта. Покажи свои попытки решения. Иначе мне просто неинтересно выполнять за тебя чтение учебников. |
![]() ![]() |
![]() |
Текстовая версия | 19.04.2025 5:26 |