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


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


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

поищи, мне тоже антиресно как это делается
Atos
Тут есть сложность: ведь в 16-м формате не телько символы 0..9, но и A..F.
Или 16-е число спецеально подобрано так, чтобы их не было?
APAL
Вариант: сначала преобразовать к 10-ричной системе, а потом к 8-ричной.
В условии где нибудь оговорено, что так нельзя делать?

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

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

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

посмотри в проге, которую я постил выше
Гость
Цитата(CDenergy @ 2.10.2004 18:46) *

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




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

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


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

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

...может, не самый оптимальный способ, зато довольно просто реализовать.
klem4
Господа модераторы, супермодераторы и администраторы вы чего ? blink.gif

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

из 16 в 8

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

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

И не надо путать 8 с/с и 9 с/с (это по коду, приведенному тобой...)
klem4
Исправил, опечатался, а поповоду дробных - в начальном задании этого не было сказано. А далее я не все видимо прочитал.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.