1 / 1 / 0
Регистрация: 15.10.2019
Сообщений: 24

Калькулятор для сложения чисел в двоичной системе

15.10.2019, 16:07. Показов 14224. Ответов 9

Студворк — интернет-сервис помощи студентам
Доброго времени суток!!! Поскольку я новичок, помогите пожалуйста, следует написать программу которая бы считала суму цифр в двоичной системе счисления т.е. я ввожу два числа в 10 системе счисления - перевожу в двоичную систему счисления и считаю их суму,при этом нельзя использовать стандартные функции т.е. нужно самому написать функцию для сложения
Помогите со сложением пожалуйста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
num22=''
num11=''
num1=int(input('Type num1:'))
num2=int(input('Type num2:'))
while num1>0:
    num11=str(num1%2)+num11
    num1//=2
while num2>0:
    num22=str(num2%2)+num22
    num2//=2
num1=num11
num2=num22
print(num1)
print(num2)
Это только для перевода чисел,а дальше не знаю как записать ,хотел сделать через строки но не знаю как записать.надеюсь на вашу помощь.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2019, 16:07
Ответы с готовыми решениями:

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

Написать машину Тьюринга для сложения двух чисел данных в двоичной системе счисления
помогите, пожалуйста.

Написать внешний модуль для вычисления результата сложения двух чисел в двоичной системе
2. Написать внешний модуль для вычисления результата сложения двух чисел в двоичной системе. В программе ввести переменные A,B,D,C в...

9
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
15.10.2019, 17:07
Посмотрите, может что-то пригодится
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
a = bin(int(input('a = ')))[2:]
b = bin(int(input('b = ')))[2:]
 
a = list(reversed(list(map(int, a))))
b = list(reversed(list(map(int, b))))
 
lena = len(a)
lenb = len(b)
 
# c = [0 for i in range(lena)]  # для переполнения
c = [0 for i in range(lena + 1)]
p = False  # вариант с переполнением
 
for i, bita in enumerate(a):
    bitb = b[i]
 
    add = bita + bitb + c[i]
    if add < 2:
        c[i] = add
    else:
        c[i] = 0
        c[i + 1] = 1
        # if i < lena - 1:
        #     c[i+1] = 1
        # else:
        #     p = True
c = list(reversed(c))
print(p)
print(int(''.join(map(str, c)), 2))
Добавлено через 37 минут
Можно zip с дефолтом использовать для удобства, т.к. данный код работает только для чисел, у которых двоичное представление имеет одинаковую длину.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
15.10.2019, 17:41
ioprst,
Цитата Сообщение от RikiCat Посмотреть сообщение
при этом нельзя использовать стандартные функции
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
15.10.2019, 18:12
Arsegg, это была лишь идея. Полагаю, что списки им можно использовать, а как ТС будет это делать, это уже его дело.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
15.10.2019, 18:15
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from itertools import zip_longest
 
 
def binary(n):
    def _binary(_n):
        q, r = divmod(_n, 2)
        return _binary(q) + (r,) if _n > 0 else tuple()
 
    return _binary(n) or (0,)
 
 
def add_binary(a, b):
    result = []
    r = 0
    for i, j in zip_longest(reversed(a), reversed(b), fillvalue=0):
        r, s = divmod(i + j + r, 2)
        result.append(s)
    if r != 0:
        result.append(r)
    return tuple(reversed(result))
 
 
a = int(input("a = "))
b = int(input("b = "))
 
bin_a = binary(a)
print(f"{bin_a}")
bin_b = binary(b)
print(f"{bin_b}")
 
print(f"a + b = {add_binary(bin_a, bin_b)}")
a = 2513557
b = 13904503
(1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1)
(1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1)
a + b = (1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0)
0
1 / 1 / 0
Регистрация: 15.10.2019
Сообщений: 24
15.10.2019, 20:12  [ТС]
Спасибо за помощь,но немного напряг свои мозги и написал такой код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
def add(a,b):
    answer=str('')
    remain=int(0)
    for i in range(len(a)-1,-1,-1):
        if((int(a[i])+int(b[i])+remain)==0):
            answer+='0'
            continue
        if((int(a[i])+int(b[i])+remain)==1):
            if(remain==1):
                remain-=1
            answer+='1'
            continue
        if((int(a[i])+int(b[i])+remain)==2):
            if(remain==0):
                remain+=1
            answer+='0'
            continue
        if((int(a[i])+int(b[i])+remain)==3):
            answer+='1'
            continue
    if(remain==1):
        answer+='1'
    return answer[::-1]
#================================================
def minus(a,b):
    answer=str('')
    remain=int(0)
    for i in range(len(a)-1,-1,-1):
        if((int(a[i])-int(b[i]))==-1):
            remain+=1
            answer+='1'
            continue
        if((int(a[i])-int(b[i]))==0):
            if (remain==1):
                answer+='1'
                remain-=1
                continue
            answer+='0'
        if ((int(a[i])-int(b[i]))==1):
            if (remain==1):
                remain-=1
                answer+='0'
                continue
            answer+='1'
    return answer[::-1]
#=============================================
def multi(a,b):
    
        
#==============================================
num1=input('Type num1:')
num2=input('Type num2:')
#===============================================
 
#===============================================
if len(num1)>len(num2):
    num2=num2.rjust(len(num1),"0")
else:
    num1=num1.rjust(len(num2),"0")
#================================================
 
#=================================================
print(add(num1,num2))
print(minus(num1,num2))
Спасибо всем))))
1
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
15.10.2019, 23:04
RikiCat, А теперь попробуйте не использовать питон, а создать свой язык программирования и на нем решить Вашу задачу.))))
Я конечно понимаю, что это не Вы сами придумываете такие глупые задания.
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
16.10.2019, 01:43
Viktorrus,

Не по теме:

для этих целей есть Brainf*ck и компания


0
16.10.2019, 05:02

Не по теме:

Цитата Сообщение от Arsegg Посмотреть сообщение
для этих целей есть Brainf*ck и компания
Так я про то же. Для написания встроенных функций есть компания, и глупо делать то же самое, не используя их разработки.
Смысл обучения языку, научиться решать задачи используя весь существующий арсенал языка. Если же Вы начинаете использовать обрезанный язык, то это вредит процессу обучения, так как нарушается технология работы с языком.

0
36 / 21 / 9
Регистрация: 17.10.2019
Сообщений: 95
18.10.2019, 00:12
Python
1
2
3
4
5
def sum(a, b):
    b = b - b*2
    c = b - a
    c = c - c * 2
    return c
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2019, 00:12
Помогаю со студенческими работами здесь

Калькулятор для целых чисел в двоичной системе счисления
Создать программу – калькулятор для целых чисел в двоичной системе счисления. Должны быть кнопки + – = На А – одно поле для ввода числа и...

Как создать Программа-калькулятор для чисел в двоичной системе счисления
Программа-калькулятор для чисел в двоичной системе счисления

Функция сложения чисел в двоичной системе счисления
Задание: Задано положительное и отрицательное число в двоичной системе. Соста- вить программу вычисления суммы этих чисел, используя...

Реализация сложения чисел в двоичной системе счисления в прямых и обратных кодах в Excel
Нужно реализовать в Excel сложение чисел в двоичной системе счисления в прямых и обратных кодах. Причём как бы пользователь на одном листе...

Напечатать таблицу умножения и сложения натуральных чисел в двоичной, восьмиричной системе счисления
Составить программу которая печатает таблицу умножения и сложения натуральных чисел в двоичной, восьмиричной системе счисления. Основание...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru