2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Системы счисления.
Сообщение22.10.2008, 21:07 


22/10/08
2
Хочу сразу предупредить, что я не математик. Обладаю знаниями лишь на уровне 2-го, 3-го курса тех. вуза. Так получилось что несколько лет назад чисто эмпирически вывел формулу для перевода чисел из любой системы счисления в любую (для целых чисел и с целочисленным же основанием системы). Озадачил этой самой формулой преподавателя информатики и благополучно забыл. Недавно снова натолкнулся на старые записи, перепроверил - все работает. Но уже не могу понять как :D .
Интересно было бы разобраться в этой теме. Материалы, которые смог найти через интернет даже не намекают на какую-то общую теорию систем счисления: те же двоичная, восьмеричная, шестнадцатиричная и способы перевода между ними.

 Профиль  
                  
 
 
Сообщение22.10.2008, 21:17 
Заслуженный участник
Аватара пользователя


01/03/06
13626
Москва
См. http://ilib.mirror1.mccme.ru/plm/ann/a40.htm

 Профиль  
                  
 
 
Сообщение22.10.2008, 21:22 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Вот здесь есть про разные системы счисления и перевод между ними в том числе: http://ilib.mirror1.mccme.ru/plm/ann/a40.htm

Добавлено спустя 31 секунду:

Опоздал. :)

 Профиль  
                  
 
 
Сообщение22.10.2008, 22:14 


22/10/08
2
Brukvalub писал(а):


Опаньки :shock: . И дальше, получается никто не прошел? Там же на словах приведен обычный алгоритм перевода делением из десятичной системы в семиричную, а дальше "Можно таким же образом осуществить перевод числа из произвольной системы в любую другую. Для этого нужно выполнять такую же серию последовательных делений, как и в рассмотренных выше примерах, но только эти действия придется выполнять не в десятичной системе, а в той системе, в которой сделана первоначальная запись числа."
У меня получается все в одно выражение общего вида (правда со взятием целой части), хоть из девятеричной в четверичную и без всяких промежуточных пересчетов "в системе первоначальной записи числа".
И еще. Неужели не было попыток введения универсального принципа записи систем счисления с основанием больше 10-ти?

 Профиль  
                  
 
 
Сообщение22.10.2008, 22:56 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Neonohoret в сообщении #152656 писал(а):
У меня получается все в одно выражение общего вида (правда со взятием целой части), хоть из девятеричной в четверичную и без всяких промежуточных пересчетов "в системе первоначальной записи числа".

Вы, видимо, зря забросили математику :)
Приведите, что ли, ваши листочки, посмотрим.
Neonohoret в сообщении #152656 писал(а):
И еще. Неужели не было попыток введения универсального принципа записи систем счисления с основанием больше 10-ти?

Такое ощущение, что это не нужно никому. Реально используется только 16-ричная, ну еще есть всякие фриковые 12-ричные общества: http://www.dozenalsociety.org.uk/

 Профиль  
                  
 
 
Сообщение22.10.2008, 23:44 


29/09/06
4552
Neonohoret в сообщении #152629 писал(а):
вывел формулу для перевода чисел из любой системы счисления в любую (для целых чисел и с целочисленным же основанием системы).

Я так понимаю, что и автор, и ответившие ему, представляют, как может (могла бы) выглядеть такая формула. Типа $10_8=\mbox{Формула}(8_{10},...)$. Буду признателен, если кто-то объяснит это и мне. (Если речь об алгоритме, то объяснить только взаимозаменяемость этих слов).

Добавлено спустя 54 секунды:

Вау, какой у меня роскошный пример случился: $i_j=j_i$!

 Профиль  
                  
 
 
Сообщение23.10.2008, 06:13 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
20 лет назад я написала книжку "Позиционные системы счисления". В прошлом году мой брат, живущий в Душанбе, предложил мне издать книжку за свой счёт. Я, конечно, согласилась. Брат издал книжку в конце прошлого года (Макарова Н. В, Шукуров Ф. А. "Позиционные системы счисления", Душанбе: "Хумо", 2007).
Сейчас открыла книжку и вот на стр. 24 вижу общее правило перевода любого числа из R-ичной системы в Q-ичную (основания систем R и Q - целые числа). Вот это правило: "Чтобы преобразовать запись числа, представленную формулой (1), в некоторой R-ичной системе счисления в эквивалентную запись в Q-ичной системе счисления, надо выполнить следующее: заменить в правой части формулы (2), представляющей число в R-ичной системе, все R-ичные цифры и основание системы счисления R на числовые эквиваленты в Q-ичной системе счисления, а затем выполнить указанные в формуле действия (возведение в степень, умножение и сложение) в Q-ичной арифметике".
Прошу прощения, что не привожу формулы (1) и (2) (не умею я здесь формулы писать :oops: ).
На моём сайте есть электронная версия этой книжки. Ссылки давать здесь не велят :) Говорят, это реклама.

 Профиль  
                  
 
 
Сообщение23.10.2008, 08:08 


29/09/06
4552
Nataly-Mak в сообщении #152686 писал(а):
Ссылки давать здесь не велят Говорят, это реклама.
Это не так. Вы ничего не нарушите, написав, "Вот ссылка на мою книгу/статью/текст, посв. данной теме", присовокупив ссылку именно на документ (а не на сайт). Вы даже можете написать "Ссылка на книгу есть на моём сайте (точка). А указание на сайт можно впарить в каждое Ваше сообщение через профиль.

Всё устроено разумно и культурно.

 Профиль  
                  
 
 
Сообщение23.10.2008, 10:01 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
От-то я и всегда ссылки по теме давала, и на документы, а не на сайт. Про магические квадраты много документов написала, а их все удалили :)
Ну, вот попробую дать ссылку на мою книжку "Позиционные системы счисления"
http://www.klassikpoez.narod.ru/pozic1.rar
Когда распакуете архив, в документе запарашивается пароль, введите ва (кириллицей), а дальше открывайте документ только для чтения.

 Профиль  
                  
 
 
Сообщение23.10.2008, 13:01 
Заблокирован


16/03/06

932
Ну, коль речь идет о информатике и позиционных системах, предлагаю решить такую проблему:

В память компьютера нужно записать, в двоичном формате, десятичное число длиной в 10 разрядов.
Например: вводим десятичное число "5465387251" в символьном формате. В памяти эти символы будут храниться так:
0101 0100 0110 0101 0011 1000 0111 0010 0101 0001, то есть 10 полубайтов, хранящих десятичные цифры.
Нужно описать алгоритм операций с байтами для преобразования этой цепочки в двоичное число
00000001 01000101 11000011 00110000 11110011
Так оно выглядит в калькуляторе в двоичном формате (для удобства восприятия я разбил его на байты).

 Профиль  
                  
 
 
Сообщение23.10.2008, 14:14 
Аватара пользователя


17/05/08
358
Анк-Морпорк
А интересная задача

Поскольку $(10)_{10}=(1010)_2$, то можно составить алгоритм, для которого потребуется $4(n-1)$ операций сдвига и сложения, где n - количество цифр в десятичной записи.
$a_i$ - полубитные цифры

$t=a_1$
i=2
пока i<=n do
{t=лсдвиг(t,3)+лсдвиг(t,1)+$a_i$
i=i+1}
результат=t

 Профиль  
                  
 
 
Сообщение23.10.2008, 15:28 
Заблокирован


16/03/06

932
General в сообщении #152769 писал(а):
i=2
пока i<=n do
{t=лсдвиг(t,3)+лсдвиг(t,1)+
i=i+1}
результат=t

Красиво. В одну строчку уместили смысл, для объяснения которого в терминах десятичной арифметики понадобилось бы пару страниц текста написать.
Начинаем с левого полубайта, умножаем его на (8+2), прибавляем следующий полубайт, результат опять умножаем на 10, прибавляем следующий и т.д... Вот и ответ на вопрос автора ветки: "Неужели не придумали универсального алгоритма для перевода из систем счисления с основанием больше (10) ?".
Для основания (42) такая строка понадобится?
{t=лсдвиг(t,5)+лсдвиг(t,3)+ лсдвиг(t,1)+

 Профиль  
                  
 
 
Сообщение23.10.2008, 16:02 


11/05/06
363
Киев/Севастополь
называется схема Горнера ;)
ее кстати в школе проходят, классе в 8

 Профиль  
                  
 
 
Сообщение23.10.2008, 17:10 
Заблокирован


16/03/06

932
MaximKat в сообщении #152792 писал(а):
называется схема Горнера
ее кстати в школе проходят, классе в 8

В смысле $5*13= 5*(8+4+1)$ ? А с какой стати этот простой арифметический прием, известный еще древним индусам, именем какого-то Горнера назвали? Или это он счеты (где костяшки сдвигают) придумал ?
Отвлечение от темы. Европейская традиция - всякую вещь собственным именем назвать. Математик Арнольд высказался по этому поводу так: "Именные изобретения, как правило, не принадлежат обозначенным авторам". Читаю учебник математики 1899 года. Там каждая задача обозначена французской фамилией. Соласен, что "схема Горнера" звучит и выглядит солиднее, чем "схема почленного умножения", но в применении вторая фраза практичнее, так как в ней заложен арифметический смысл.

 Профиль  
                  
 
 
Сообщение23.10.2008, 17:27 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Архипов в сообщении #152813 писал(а):
В смысле $5*13= 5*(8+4+1)$ ?

Нет, схема Горнера не в этой строчке: t=лсдвиг(t,3)+лсдвиг(t,1)+$a_i$, а в цикле: Схема Горнера состоит в том, что мы вычисляем значение многочлена не обычной последовательностью действий $a_n x^n + a_{n-1} x^{n-1}\dots + a_0$, а вот так: $(\dots(a_n\cdot x + a_{n-1})\cdot x+\dots +a_1)\cdot x + a_0$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group