Программа которая выводит двоичный код числа

Программа принимает число и переводит его в двоичную систему счисления с использованием рекурсии.

Решение задачи

  1. Задаем рекурсивную функцию, которая может принимать в качестве аргумента число.
  2. Принимаем от пользователя число и передаем его в качестве аргумента в рекурсивную функцию.
  3. В самой функции в качестве базового условия рекурсии задаем равенство входящего аргумента нулю. В этом случае функция возвращает переменную, в которую до начала работы функции был помещен пустой список.
  4. В противном случае в список добавляется остаток от деления аргумента на 2 , а затем снова вызывается эта же функция, в которую в качестве аргумента передается результат целочисленного деления на 2 .
  5. Далее мы переворачиваем список и выводим его на экран при помощи цикла for .
  6. Конец

Исходный код

Ниже дан исходный код, который переводит число в двоичную систему счисления при помощи рекурсии. Результаты работы программы также даны ниже.

Перевод числа в двоичную систему за два шага!!!


l = [] def convert(b): if (b == 0): return l dig = b % 2 l.append(dig) convert(b // 2) a = int(input(«Введите число: «)) convert(a) l.reverse() print(«Двоичная форма числа:») for i in l: print(i)

Объяснение работы программы

  1. Создается переменная l , которая инициируется пустым списком.
  2. Определяется рекурсивная функция convert() , которая в качестве аргумента принимает число.
  3. В самой функции определяется базовое условие рекурсии. Оно состоит в равенстве аргумента функции 0 . В этом случае функция возвращает сформированный рекурсивным образом список l .
  4. В противном случае каждая цифра числа переводится в двоичный вид и добавляется в список в виде 0 или 1 . А функция вызывается еще раз с аргументом, который был получен из первоначального аргумента посредством целочисленного деления на 2 .
  5. Затем список инвертируется посредством функции reverse() и выводится на экран с помощью цикла for .
Читайте также:
Что из перечисленного является объектом авторских прав компьютерные программы

Результаты работы программы

Пример 1: Введите число: 20 Двоичная форма числа: 1 0 1 0 0 Пример 2: Введите число: 7 Двоичная форма числа: 1 1 1

Источник: pythonist.ru

Число в двоичной системе счисления с лидирующими нулями

Главное, чтобы было 1 байт — 8 цифр. Например, функция bin переводит 1 в 0b1 , а требуется получить 0000 0001 .

Отслеживать
9,226 4 4 золотых знака 40 40 серебряных знаков 56 56 бронзовых знаков
задан 29 окт 2015 в 9:49
Николай Михальцов Николай Михальцов
15 1 1 серебряный знак 5 5 бронзовых знаков

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

«».format(n) например можно так.

Отслеживать
ответ дан 29 окт 2015 в 9:57
Владимир Мартьянов Владимир Мартьянов
9,639 4 4 золотых знака 21 21 серебряный знак 35 35 бронзовых знаков
get_bin = lambda x, n: x >= 0 and str(bin(x))[2:].zfill(n) or «-» + str(bin(x))[3:].zfill(n)
29 окт 2015 в 10:00
29 окт 2015 в 10:01
29 окт 2015 в 10:03

Просто о двоичной системе счисления и двоичном коде. #1

30 окт 2015 в 23:25

Для неотрицательных целых чисел n :

bin(n)[2:].zfill(8)
Отслеживать

Начиная с Python 3.6 можно воспользоваться F-строками и возможностью использования знака подчёркивания _ в качестве разделителя цифр числа:

где x — это выражение, результат которого нужно вывести в двоичном представлении,
: отделяет это выражение от описания форматирования (язык то же, что и в методе .format() ),
0 задаёт символ заполнения,
9 — это минимальное количество символов строке (8 на байт, один символ для разделителя),
_ добавляет разделитель между каждыми четырьмя символами (наподобие разделителей тысяч в записи числа),
b указывает, что вывод должен производиться в двоичной системе счисления.

Например, при x = 1 вывод будет почти таким, какой вам и требовался:

print(f») # 0000_0001

Если подчёркивание в качестве разделителя не подходит, то можно легко заменить его на пробелы:

Читайте также:
Принцип программы хранимой в памяти компьютера

print(f».replace(‘_’, ‘ ‘)) # 0000 0001

Важно отметить, что при отрицательных значениях x этот код заберёт одну позицию на знак:

print(f») # -000_0001

Если всё же требуется обрабатывать и отрицательные числа, код можно дополнить одним условием:

x = -1 print(f’ 0 else 10>_b>’) # -0000_0001

Также важно, что числа, не помещающиеся в выделенное пространство, не будут дополняться нулями слева, но разделение по 4 символа сохранится:

print(f») # 1_1111_0100_0000

Здесь играет роль то, что число 9 в форматирующем выражении описывает именно минимальную ширину строки, и никак не ограничивает её сверху.

Источник: ru.stackoverflow.com

Вывести двоичный код вводимого числа(integer) и наоборот из двоичного в integer. — Pascal

Напишите плиззз программу, которая выводит двоичный код вводимого числа(integer) и наоборот из двоичного в integer. И при помощи процедуры printbyte и printvar.

Код к задаче: «Вывести двоичный код вводимого числа(integer) и наоборот из двоичного в integer.»

Листинг программы

< Составить программу перевода десятичного числа в двоичное >uses crt; var a : longint; function DEC_BIN(x:longint):string; const digits:array [0..1] of char = (‘0′,’1’); var res:string; d:0..1; begin res:=»; while (x<>0) do begin d:=x mod 2; res:=digits[d]+res; x:=x div 2; end; DEC_BIN:=res; end; begin < основная программа >clrscr; write(‘Введите десятичное число а= ‘); readln( a ); writeln( DEC_BIN(a) ); readln end. < Составить программу перевода двоичного числа в десятичное >uses crt; var a : string; function BIN_DEC(x:string):longint; const digits:array [0..1] of char = (‘0′,’1’); var res,ves:longint; i,j:byte; begin res:=0; ves:=1; for i:=length(x) downto 1 do begin j:=0; while (digits[j]<>x[i]) do inc(j); res:=res+ves*j; ves:=ves*2; end; BIN_DEC:=res; end; begin < основная программа >write(‘Введите бинарное число а= ‘); readln( a ); writeln( BIN_DEC(a) ); readln end.

Источник: studassistent.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru