IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Перевод в текст
Ademon
сообщение 15.05.2014 6:58
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Помогите написать программу, для перевода кирилицы(или хотябы латинских букв) в бинарный код. Заранее спасибо ! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 15.05.2014 16:25
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  8  +


Все символы в кодировке 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.

Это идея. А дальше - приводи попытки решения.

Сообщение отредактировано: Федосеев Павел - 15.05.2014 16:25
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ademon
сообщение 15.05.2014 20:29
Сообщение #3





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 15.05.2014 17:25) *

Все символы в кодировке 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.

Это идея. А дальше - приводи попытки решения.

Не могли бы вы скинуть полную версию данной программы ? Просто я новенький и наврятле смогу доделать сам =) Надеюсь на вас, заранее спасибо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 16.05.2014 6:25
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  8  +


То, что я привёл - это пояснительный материал, т.е. другой версии - нет.
Я не понимаю условие задачи, поэтому не могу и что-либо решать.
Попробуй самостоятельно.
Как я припоминаю, в школе в 9 классе на освоение конструкций BASIC мне понадобилась 1 неделя, на Pascal - 2 недели. Т.е. это всё не сложно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ademon
сообщение 16.05.2014 6:50
Сообщение #5





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 16.05.2014 7:25) *

То, что я привёл - это пояснительный материал, т.е. другой версии - нет.
Я не понимаю условие задачи, поэтому не могу и что-либо решать.
Попробуй самостоятельно.
Как я припоминаю, в школе в 9 классе на освоение конструкций BASIC мне понадобилась 1 неделя, на Pascal - 2 недели. Т.е. это всё не сложно.

Насчет условия: необходимо написать программу ,чтобы она исходную букву(А,б,в и т.д.) переводила в двоичный код.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 16.05.2014 8:10
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  8  +


Ну вот, мой пример это и выполняет.
Если исходные данные у тебя строка - то пройдись по всем символам строки в цикле и распечатай двоичное представление каждого символа.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ademon
сообщение 16.05.2014 16:57
Сообщение #7





Группа: Пользователи
Сообщений: 4
Пол: Мужской

Репутация: -  0  +


Цитата(Федосеев Павел @ 16.05.2014 9:10) *

Ну вот, мой пример это и выполняет.
Если исходные данные у тебя строка - то пройдись по всем символам строки в цикле и распечатай двоичное представление каждого символа.

Char: I
Byte: 73
Не похоже на двоичный код. Что еще надо сделать ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Федосеев Павел
сообщение 16.05.2014 18:53
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 298
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  8  +


Sorry, в первом посте был термин "бинарный код", а под это определение попадает и тип byte.

А ты подумай, как можно из байта получить строку символов из 0 и 1.
Побитовые операции, сдвиги учил?
Ну вот, после преобразования символа в число, делаешь преобразование числа в строку символов из 0 и 1.
Берёшь переменную m - маску - равную (1 shl 7) = $80 и проверяешь на ноль результат побитового умножения на число ( if (m and b) = 0 ). Если 0, то в строку s дописываешь символ "0", иначе - символ "1". Потом сдвигаешь маску на 1 вправо и повторяешь проверку. И так 8 раз. В результате - строка с двоичным представлением твоего байта.

Покажи свои попытки решения. Иначе мне просто неинтересно выполнять за тебя чтение учебников.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.04.2024 17:23
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"