Преобразуването на десетично число в двоично не е загадка в Python:
Дори обратният процес, от двоичен към десетичен, е прост:
Но благодатта, когато човек се научи да програмира, се опитва да развие шестото чувство алгоритмичен, често пренебрегван аспект.
Така че в днешната статия ще проектираме собствена функция, за която отговаряме преобразуване на десетично число в двоично, че по-късно ще продължим, за да го изразим в всяка друга база.
Откриването на основния алгоритъм често включва изпълнение на задачата на ръка обръщайки голямо внимание на нашите психични процеси, ги превърнете в думи и ги трансформира по-късно в инструкции собствен език за програмиране.
Примерът, който ни засяга, е прост, тъй като има практически пряка кореспонденция между нашия психичен процес и формално развитие, но не винаги има такъв и в тези случаи е необходимо да се атомизира какво минава през главата ни.
В училище ни учат (или поне са преподавали) на процедурата за преобразуване на положително цяло число в десетична основа в двоично:
Разделяме числото на две и записваме остатъка от делението. Взимаме коефициента и го разделяме на две, записвайки новия остатък. Взимаме новия коефициент и продължаваме същата операция, докато не можем да продължим, тъй като коефициентът вече е по-малък от два (един, в двоични преобразувания). След това вземаме този коефициент (един) и добавяме към него, в обратен ред на поява, всички останки, които сме записвали по пътя.
Нека преобразуваме, например, 81 в двоично:
Вече не можем да делим на две, тъй като коефициентът е един. Взимаме този коефициент, заедно с всички остатъци в обратен ред и намираме 81, изразени в двоично:
1010001
Нашият алгоритъм ще свърши работа точно същото.
Двоичната променлива е низ, който натрупва всеки остатък. Наблюдавайте конструкцията му, добавяйки наляво всяка нова почивка.
Десетичната променлива започва с оригиналното число, но във всяка итерация приема стойността на новия коефициент в резултат на целочисленото деление. Цикълът ще се повтаря непрекъснато, докато този коефициент е различен от нула. По това време предишният коефициент (единица) ще бъде цифрата най-значително на резултата, върнат с извлечението за връщане.
Нека видим тази функция в действие:
За да конвертирате в която и да е друга база, процедурата е абсолютно същата, с изключение на това, че вместо да извършим целочисленото деление на две, ние го правим в новата база.
А сега преобразуване в осмично:
За целите на тестването избягвайте да използвате бази, по-големи от 10, тъй като нямаме достатъчно цифри, за да покажем резултата. Или можете да модифицирате програмата и да създадете свои собствени цифри, като използвате букви от азбуката, както в шестнадесетичната система.
Предложено упражнение 1: създайте функция, която преобразува десетично число в база 16 (шестнадесетична). Ще ви трябва вид таблица, която трансформира резултатите от остатъка 10, 11, 12, ..., 15 в A, B, C, ..., F, съответно.
Предложено упражнение 2: създайте функция, която преобразува от двоична в десетична.
Предложено упражнение 3: създайте функция, която преобразува число, изразено във всяка друга база, в десетично.
Хавиер Монтеро Габаро
Текстът на тази статия е предмет на лиценза на Creative Commons от този тип CC-BY-NC-ND (потвърждение, нетърговско, без производни произведения, 3.0 неотнесено)
Клубът за самоуки
Вижте пълния индекс на статии, свързани с Python.
- Бюджетна програма за строги бюджети за отслабване и преоразмеряване на държавата - Al Calor
- Наградите "Оскар" Джаред Лето живееше с пациент с ХИВ, за да се подготви за ролята си в клуба на купувачите в Далас
- Mediasur създава програмата; Скалата; за Aragуn Televisiуn след успеха му в Canal Sur
- Укрепваща програма за отслабване - Атлантафорт
- Програма за пешеходни упражнения за отслабване