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

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

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

 
 Ответить  Открыть новую тему 
> Перевод числа из одной с/с в другую
CDenergy
сообщение 2.10.2004 18:46
Сообщение #1


Гость






Здравствуйте! Я никогда не имел дела с Паскалем и вот теперь в ВУЗе необходимо написать элементарную програмку, как мне сказал преподователь. Помогите, пожалуйста!
Исходная информация: Натуральное число записано в 16-ричной с/с в формате string.
Задание: вывести значение этого числа в 8-ричной с/с.
Примечание: можно считать, что 8-риное представление числа вмещается в формат string.
Заранее СПАСИБО!!!
 К началу страницы 
+ Ответить 
GoodWind
сообщение 3.10.2004 5:02
Сообщение #2


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

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


мдя...делал я что-то такое.... unsure.gif
ща поищу....


-----
после поиска:
вот, нашел, но тут перевод из десятичной в двоичную, восьмеричную и шестнадцатиричную. можт пригодится :p2:


попробуй поискать на форуме, наверняка раньше этот вопрос у когонибудь возникал

Сообщение отредактировано: GoodWind - 3.10.2004 5:09


Прикрепленные файлы
Прикрепленный файл  ss.pas ( 1.09 килобайт ) Кол-во скачиваний: 269


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 3.10.2004 8:23
Сообщение #3


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


Что-то припоминаю, что первод из 16-ой в 8-ую гораздо проще, и считать ничего не надо.
Там кажется просто надо разделить строку на строки по 4 эле-та и каждая такая подстрока будет числом в 8-ой. А потом объединить...
щас поищу. ..


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 3.10.2004 15:59
Сообщение #4


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

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


Цитата
щас поищу. ..

поищи, мне тоже антиресно как это делается


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 4.10.2004 14:40
Сообщение #5


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


Тут есть сложность: ведь в 16-м формате не телько символы 0..9, но и A..F.
Или 16-е число спецеально подобрано так, чтобы их не было?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
APAL
сообщение 4.10.2004 14:57
Сообщение #6


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Вариант: сначала преобразовать к 10-ричной системе, а потом к 8-ричной.
В условии где нибудь оговорено, что так нельзя делать?

Как говориться, что не запрещено - то разрешено!


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Atos
сообщение 4.10.2004 15:04
Сообщение #7


Прогрессор
****

Группа: Модераторы
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

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


Цитата(Oleg_Z @ 3.10.04 5:23)
кажется просто надо разделить строку на строки по 4 эле-та и каждая такая подстрока будет числом в 8-ой. А

Трёхзначное число в 16-й - это четырёхзначное в 8-й
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GoodWind
сообщение 4.10.2004 18:23
Сообщение #8


Автооответчик
*****

Группа: Модераторы
Сообщений: 1 188
Пол: Мужской
Реальное имя: Александр

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


Цитата
Тут есть сложность: ведь в 16-м формате не телько символы 0..9, но и A..F.
Или 16-е число спецеально подобрано так, чтобы их не было?

тут можно воспользоваться чем-то вроде алфавита СС

посмотри в проге, которую я постил выше


--------------------
Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 21.02.2006 15:16
Сообщение #9


Гость






Цитата(CDenergy @ 2.10.2004 18:46) *

Здравствуйте! Я никогда не имел дела с Паскалем и вот теперь в ВУЗе необходимо написать элементарную програмку, как мне сказал преподователь. Помогите, пожалуйста!
Исходная информация: Натуральное число записано в 16-ричной с/с в формате string.
Задание: вывести значение этого числа в 8-ричной с/с.
Примечание: можно считать, что 8-риное представление числа вмещается в формат string.
Заранее СПАСИБО!!!




СЛушай мне тоже нужна эта программа .
Любые числа (дробные целые четные не четные ) из 16- 8 сс .
Я знаю как это делать но программу не могу написать.
ПОМОГИ ЕСЛИ ТЫ УЖЕ ЕЕ НАШЕЛ.... ПЛИЗ yes2.gif
 К началу страницы 
+ Ответить 
APAL
сообщение 21.02.2006 15:21
Сообщение #10


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


Цитата(Гость @ 21.02.2006 15:16) *

СЛушай мне тоже нужна эта программа .
Любые числа (дробные целые четные не четные ) из 16- 8 сс .
Я знаю как это делать но программу не могу написать.
ПОМОГИ ЕСЛИ ТЫ УЖЕ ЕЕ НАШЕЛ.... ПЛИЗ yes2.gif


Опять некрофилия!

Если знаешь как делать, то я не понял в чем трудность?


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 21.02.2006 16:20
Сообщение #11


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


я думаю,проще переводить не через десятичную, а через двоичную.
делается это так:
1. каждый символ из 16-ричной заменяем на четыре соответствующих двоичных (пользуйся case, например)
2.каждую триаду заменяем на восьмеричный символ.(тот же case, только работаешь уже не со строками, а с числами).

...может, не самый оптимальный способ, зато довольно просто реализовать.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 21.02.2006 16:30
Сообщение #12


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Господа модераторы, супермодераторы и администраторы вы чего ? blink.gif

FAQ : Системы счислений

из 16 в 8

st := FromDec(ToDec(st, 16), 8);


Сообщение отредактировано: volvo - 2.11.2006 18:43


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 21.02.2006 17:08
Сообщение #13


Гость






klem4,
ЭТО там тоже есть:
Цитата
Любые числа (дробные целые четные не четные ) из 16- 8 сс .
?

Заодно посмотри на дату первого сообщения этой темы, и той, по ссылке...

И не надо путать 8 с/с и 9 с/с (это по коду, приведенному тобой...)
 К началу страницы 
+ Ответить 
klem4
сообщение 21.02.2006 17:25
Сообщение #14


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Исправил, опечатался, а поповоду дробных - в начальном задании этого не было сказано. А далее я не все видимо прочитал.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

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