Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2011, 21:21   #1
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
По умолчанию Перевод из 10сс в *сс

Код:
function Convd(x:integer):char;//Это я как понимаю проверка числа если оно больше 9 то тогда заменяем буквой
begin
if x<10 then Convd:=chr(x+ord('0'))
else Convd:=Chr(x-10+ord('A'));
end;
function _10toR(N,R:integer):string;//Сама функция перевода десят числа в любую CC
var s:string;
begin
s:='';
repeat
s:=convd(N mod R)+S;
N:=N div R
until N=0;
_10toR:=s;
end;
Доброго времени суток.
Помогите пожалуйста разъяснением программного кода функции по переводу из 10cc в любую другую cc.Суть то ясна мы делим число на основание и выписываем остатки.Если можно то разъясните пожалуйста технически какие процессы выплняются на строках которые я отметил красным.Заранее благодарен.
0479 вне форума Ответить с цитированием
Старый 25.02.2011, 22:30   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,899
По умолчанию

ну тут всё просто...
Код:
if x<10 then Convd:=chr(x+ord('0'))
else Convd:=Chr(x-10+ord('A'));
если число в десятичной системе меньше 10, то представляющий его символ записать как символ под номером [само число+порядковый номер нуля], иначе ( число больше или равно 10) записать результирующий символ как букву, номер символа которой [число -10 +номер буквы А]

Код:
s:=convd(N mod R)+S;
N:=N div R
здесь вызываем предыдущую функцию передавая ей остаток от деления исхдного числа в 10сс на новое основание, и в итоге записывается в результирующую строку 1 символ, после чего целочисленно делим иходное число на новое основание и присваиваем переменной , где и было это число, таким образом отбрасываем только что учтенный символ, и это происходит пока число не обнулится (это ты уже не отмечал красным, просто это цикл)
phomm вне форума Ответить с цитированием
Старый 25.02.2011, 23:04   #3
0479
Форумчанин
 
Аватар для 0479
 
Регистрация: 27.09.2009
Сообщений: 153
По умолчанию

Спасибо большое.Теперь всё понятно.)))
0479 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перевод lilek Помощь студентам 0 23.12.2010 21:49
перевод в СИ Temka Общие вопросы Delphi 0 10.12.2010 19:14
перевод historic Помощь студентам 0 05.10.2010 00:12
перевод Александе еть я Помощь студентам 1 09.05.2010 00:14