Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.008 c
14-26759
Jackson
2003-05-22 23:10
2003.06.09
Нужна ли баньщику латынь?


3-26361
Николай
2003-05-20 18:32
2003.06.09
проблема с таблицей


9-26324
Артем1
2003-01-01 17:33
2003.06.09
DelphiX


1-26607
AFrolov
2003-05-28 12:47
2003.06.09
Как получить ссылку на интерфейс


14-26757
VitGun
2003-05-22 21:07
2003.06.09
DBGrid + Tree





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский