Форум: "Потрепаться";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
ВнизСистемы исчисления Найти похожие ветки
← →
Злодей (2003-05-24 16:57) [0]Помоготе пожалуйста перевести число из десятиричной системы исчисления в N-ричную (или хотя бы двоичную) и обратно, плз....
← →
Palladin (2003-05-24 17:09) [1]Говори число и систему назначени, переведу.
← →
Vasiliy (2003-05-24 17:11) [2]Дели число на 2, если результат число целое, то бит=0, если дробное то бит=1. Так для каждого бита.
← →
Palladin (2003-05-24 17:12) [3]Говори число и систему назначени, переведу.
← →
Sha (2003-05-24 18:39) [4]Сначала определись с типом переменных, в которых хранятся числа. Может оказаться, что тебе надо только показать на экране или вывести в файл одно и то же число в двух различных форматах.
← →
Renul (2003-05-24 19:03) [5]Зайди в кладовуйю, там есть готовая программа. Тебе остается только разобраться в коде.
← →
Злодей (2003-05-24 20:15) [6]
> Говори число и систему назначени, переведу.
У меня тоже модный калькулятор есть, но мне нужна программа.
← →
Palladin (2003-05-25 00:29) [7]
> У меня тоже модный калькулятор есть, но мне нужна программа.
а чем калькулятор не программа?
← →
jack128 (2003-05-25 00:34) [8]> Злодей © (24.05.03 20:15)
Так взломай колькулятор, заодно крутым хакером заделаешься.
А вообще это грусный разговор - студент, видимо желающий стать программистом, спрашивает как перевисти из одной системы счисления в другую.. -(
← →
DrPass (2003-05-25 00:42) [9]Обычно перевод из одной системы в другую изучают на вводных лекциях к курсу информатики в школе и повторяют в институте. Если чел этого не знает, то
а) он еще не проходил информатику в школе -> он еще мал, чтобы писать программы
б) он проходил, но ничего не понял -> он слишком туп, чтобы писать программы
Следствие: данная тема рассмотрению на форуме не подлежит.
← →
uw (2003-05-25 03:31) [10]Руками это делается так:
Делишь число на N, остаток обводишь кружочком. То, что получилось, делишь на N, остаток обводишь кружочком. И так до тех пор, пока результат не получится меньше N, его тоже обводишь кружочком. Потом то, что в кружочках начинаешь выписывать, начиная с последнего.
Для 3783 и N = 16 имеем остатки 7, 12, 14. Поэтому результат равен $EC7.
← →
Sha (2003-05-25 10:29) [11]>uw © (25.05.03 03:31)
Это не "перевести" - это "вывести" :)
← →
Sha (2003-05-25 11:32) [12]Ладно, Злодей, держи.
Вот она тайна, которую мастера тщательно скрывают от посторонних глаз:
function ConvertToOtherBase(const Value1, Ciphers1, Ciphers2: string): string;
var
i, m1, m2, len1: integer;
v, c: int64;
begin;
Result:="";
m1:=Length(Ciphers1);
m2:=Length(Ciphers2);
len1:=Length(Value1);
if (m1<2) or (m2<2) or (len1<1) then exit;
v:=0;
for i:=1 to len1 do begin;
c:=pos(Value1[i],Ciphers1);
if c=0 then exit;
v:=v * m1 + (c-1);
end;
if v>=0 then repeat;
c:=v mod m2;
v:=v div m2;
Result:=Ciphers2[c+1]+Result;
until v=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
const
Ciphers1: string= "0123456789";
Ciphers2: string= "0123456789abcdef";
begin;
Edit2.Text:=ConvertToOtherBase(Edit1.Text, Ciphers1, Ciphers2);
end;
← →
Arch-vile (2003-05-25 12:19) [13]DrPass © (25.05.03 00:42)
Обычно перевод из одной системы в другую изучают на вводных лекциях к курсу информатики в школе и повторяют в институте. Если чел этого не знает, то
а) он еще не проходил информатику в школе -> он еще мал, чтобы писать программы
б) он проходил, но ничего не понял -> он слишком туп, чтобы писать программы
В) Это не проходили.
Такое тоже может быть. У нас никто ни на информатике ни на математике такое не рассказывал.
← →
Palladin (2003-05-25 13:12) [14]
> Arch-vile © (25.05.03 12:19)
это основы, без этого дальше никак, что же тогда у вас рассказывали?
← →
kaif (2003-05-25 14:24) [15]Вообще тут главное понять суть того, что такое позиционная система записи чисел.
Допустим, у тебя имеется система с основанием 5. Это означает:
1. Каждый разряд может принимать значения 0..4
2. Каждый разряд имеет вес, равный 5 в степени номер разряда
3. Нумерация разрядов начинается с 0.
Таким образом, для пятиричной системы вес первого разряда 5^0=1, вес второго разряда 5^1=5, третьего 5^2=25 и т.д.
Теперь для того, чтобы перевести какое-нибудь число (например, 113) в пятиричную систему тебе нужно просто узнать, сколько в это число влезет, начиная со старшего разряда:
1. Сюда явно лезет 4 раза 25 (100). Значит, второй разряд (5^2) имеет вес 25 и в нем надо записать 4. Отнимем 113-100. Останется 13.
2. В число 13 явно лезет 5 два раза (10). Значит первый разряд имеет значение 2. Отнимем 13 - 10 = 3.
3. Число 3 это нулевой разряд (единичка) 3 раза.
Таким образом, число:
113 = 4*(5^2) + 2*(5^1) + 3*(5^0).
Или 113 запишется как 423 в пятиричной системе.
-----------------------------
Если ты это поймешь, то ты спожешь перевести даже число 666 в тринадцатиричную систему.
Учти, если знаков в разряде больше 10, то применяют буквы. Например, в шестнадцатиричной системе в одном разряде может быть 16 знаков: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
----------------------------------------------
← →
uw (2003-05-25 16:13) [16]666 / 13 = 51 ( 3 в остатке)
51 / 13 = 3 ( 12 в остатке)
3 / 13 = 0 ( 3 в остатке)
666D = 3C3 по основанию 13!!!
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c