вторник, 22 януари 2013 г.

Преобразуване от n-ична бройна система в десетична бройна по схема на Хорнер


Да кажем, че имаме числото 43544123,  което е в 6-тична бройна система и трябва да го преобразуваме в 10-ична бройна система.

Правим си таблица с два реда и колонки – колкото са цифрите в даденото число+1.

В дадения случай числото има 8 цифри, значи трябва да имаме 9 колонки, в които записваме
числата по следния начин:

0
1
2
3
4
5
6
7
8

4
3
5
4
4
1
2
3










В първата клетка от втория ред пишем номера на системата, от която ще преобразуваме – в случая 6:

0
1
2
3
4
5
6
7
8

4
3
5
4
4
1
2
3
6









 След това в  първата празна клетка преписваме числото над нея – в случая 4.

0
1
2
3
4
5
6
7
8

4
3
5
4
4
1
2
3
6
4








 Следващите празни клетки се получават по следния начин: 
6*4+3  т.е  номер на системата * последната завършена клетка +клетката, която е над тази, която ще попълваме:

0
1
2
3
4
5
6
7
8

4
+3
5
4
4
1
2
3
6
*4
=6*4+3







И по същия начин до края:

0
1
2
3
4
5
6
7
8

4
3
+5
4
4
1
2
3
6
4
*27
=6*27+5






 Последната запълнена кутийка е числото, което търсим:

0
1
2
3
4
5
6
7
8

4
3
5
4
4
1
2
+3
6
4
27
167
1 006
6 040
36 241
*217 448
1 304 691


4 коментара:

  1. Здравей!
    Хареса ми обяснението ти, на скоро се наложи да ползвам до болка познатия Хорнер, задачката беше следната: при зададено шестнадесетично число да се изведе в десетичен вид стойността върху седем-сегментна диодна индикация.
    Поздрави,
    Николай!

    ОтговорИзтриване
    Отговори
    1. Уау... седем сегментна диодна индикация! Дори не мога да си го представя какво е:)

      Изтриване
    2. Пфффт, ами знам ли и аз какво имах предвид, но сега имам директен въпрос! Не съм се занимавал с уеб дизайн и като цяло не ми се е налагало да ползвам Хорнер с език от високо ниво, та въпросът е в каква ситуация си го ползвала?
      И в случай, че те интересува, ето 'линк' към информация за седем-сегментна индикация http://en.wikipedia.org/wiki/Seven-segment_display
      поздрави,
      Николай!

      Изтриване
  2. Ами ние сега учим основи на програмирането със С#. И имахме за задачи да преобразуваме числа от една бройна система в друга. Та там го ползвах. Няма общо с уеб дизайна, поне засега:)
    Ето я и конкретната задачка:
    http://pastebin.com/nTT00DU6

    ОтговорИзтриване