Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Системы исчисления   Найти похожие ветки 

 
Злодей ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.02 c
3-26377
Polard
2003-05-21 10:43
2003.06.09
Invalid BLOB handle in record buffer


1-26592
edicon
2003-05-19 23:29
2003.06.09
И снова Excel


3-26340
Andrio
2003-05-17 14:39
2003.06.09
В таблице после обновления данных (Refresh) пропадает часть запис


1-26444
Frist_May
2003-05-29 09:34
2003.06.09
Десктоп...


1-26503
Somofly
2003-05-30 03:59
2003.06.09
TStringGrid