Помощь - Поиск - Пользователи - Календарь
Полная версия: системы исчислений
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
sheka
какие существуют методы перевода чисел из одной системы исчислений в другую?
Lapp
Цитата(sheka @ 10.06.2009 0:13) *

какие существуют методы перевода чисел из одной системы исчислений в другую?

Общие вопросы по математике.

Добавлено через 4 мин.
М
sheka, пойми же наконец, что раздел "Теоретические вопросы" относится к теории языка Паскаль.
Если твой вопрос не про операторы или конструкции Паскаля, то для этого есть раздел Алгоритмы, например.
Переношу

sheka
Код

function FromDec(n, radix:longint):string;
var
    s: String;
const
    digit: string[16]='0123456789ABCDEF';
begin
    s:='';
    repeat
        s:=digit[(n mod radix)+1]+s;
        n:=n div radix;
    until n=0;
    FromDec:=s;
end;


что такое n, radix?
Lapp
Цитата(sheka @ 10.06.2009 12:07) *
что такое n, radix?
n - число, которое переводишь
radix - основание системы счисления (СС)
volvo
N - само число, которое надо перевести из 10-ной в систему счисления с основанием Radix, т.е.,
s := FromDec(165, 16);
переведет 165 в 16-ричную СС, и вернет 'A5'
Lapp
Конечно, название неудачное:
function FromDec(n, radix:longint):string;


На самом деле эта функция просто возвращает запись числа n в выбранной СС с основанием radix. Конечно, число n при этом не в десятичной системе, ессно. Это просто абстрактное число. Так что название FromDec совсем не отражает сути.
volvo
Опять началось... Ну, предложи более удачное, я потом приду и скажу, что все данные, которыми оперирует компьютер, вообще хранятся в двоичном коде, поэтому такая функция вообще на фиг не сдалась, ибо переводит из двоичного кода в двоичный, а посему ничего не делает... Ничего не напоминает такая постановка?
Lapp
Цитата(volvo @ 10.06.2009 12:22) *
Опять началось...
Володь, давай без "опять".

Просто хочется навести чуть больший порядок в голове у начинающего. Вопрос действительно тонкий - в том смысле, что легко запутаться. Да, машинное представление - двоичное. Но вполне могло бы быть и троичным, четыричным или еще каким-то - нас это не волнует. Именно это я и хотел сказать. Есть абстрактное понятие числа, и это главное. Как оно записано - в двоичной ли, десятичной, римской записи или записи Робинзона Крузо зарубками - это неважно, само посчитанное стадо овец от этого не изменится. Приведенная функция будет одинаково хорошо работать не только на машине с троичной логикой, но и для племени Мумба-Юмба, в котором принята 32-ричная СС (по числу зубов). И они, бедные, будут долго репу чесать, пытаясь понять - а при чем тут десятичная система? blink.gif

Более удачное название я приведу как нечего делать, и ты это знаешь. Но не в этом дело - я сказал, что считал нужным сказать. Я извиняюсь, что не дал себе труда посмотреть, кто писал этот код (и сейчас еще не знаю), но это дела не меняет. Я высказался на форуме, как свободный человек, that's it. Про "опять" - извини, не помню. Память подводит, видимо.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.