Другие языки программирования и технологии

Pascal. Перевести 16е число в 2-ю систему счисления

Just Be
Just Be
540
Доброго времени суток.

Не надо ничего делить или переводить в другую систему. Просто запишите каждую 16-ричную цифру ее двоичным эквивалентом.

На паскале можно сделать так. Создается массив двоичных эквивалентов 16-ричных чисел, а затем выделяете из входной строки символ, определяете для него индекс в массиве и выводите соответствующий элемент. Примерно так.

const
arrHex : array[0..15] of String[4] = (
'0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111',
'1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');

var
S, S1 : String;
j, n : Integer;
begin
ClrScr;
ReadLn(S);
for j:=1 to Length(S) do begin
S[j] := UpCase(S[j]);
case S[j] of
'0'..'9' : n := Ord(S[j]) - Ord('0');
'A'..'F' : n := Ord(S[j]) - Ord('A') + 10;
end;
S1 := S1 + arrHex[n];
end;
WriteLn(S1);
ReadLn;
end.

Не правда-ли, все достаточно просто? Для красоты можно добавить код для удаления ведущих нулей.

Удачи!
Эдик Кожевников
Эдик Кожевников
59 612
Лучший ответ
методом деления на 2 вроде столбцом как в математике остаток выносят отдельно, но я уже немоню как точно вычислять, в жизни это никак не пригодилось ниразу, да и калькулятор есть для конвертирования между системами счисления
Геннадий Грек
Геннадий Грек
62 778
вначале переведи в десятичное - погтом в шестнадцатиричное
все просто - если знаешь синтаксис Паскаля например, или того языка, на котором ты программируешь
самое простое для меня переведи сначала в десятичную а потов в двоичную