3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
1 | |
Сложение в двоичной системе счисления18.05.2014, 18:49. Показов 11134. Ответов 16
Метки нет (Все метки)
Добрый день! Помогите пожалуйста, не знаю как реализовать. Например n = 1010.1111 m = 1011.0101 . Я понимаю как сделать это на бумаге, но как сделать на практике? Как например практически записать, чтобы программа складывала последние числа, в данном случае 1+1, писала 0, и единицу запоминала для следующего разряда?
0
|
18.05.2014, 18:49 | |
Ответы с готовыми решениями:
16
Сложение в двоичной системе счисления Сложение в двоичной системе счисления Сложение чисел в двоичной системе счисления Вычислить сумму двух длинных бинарных чисел, используя сложение чисел в двоичной системе счисления |
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
|
|
18.05.2014, 19:16 | 2 |
Сначала определись, как ты будешь числа такие хранить. Если в виде массивов чисел, то простая арифметика, если в виде строк, то надо преобразовывать.
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
18.05.2014, 19:21 [ТС] | 3 |
0
|
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
|
|
18.05.2014, 19:25 | 4 |
Тут нужен класс, наверное, для хранения такого числа - с мантиссой и порядком. В нём методы для сложения и прочих операций.
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
18.05.2014, 19:32 [ТС] | 5 |
0
|
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
|
|
18.05.2014, 19:33 | 6 |
Тогда структуру. Тебе просто сложить и всё? Нужны другие операции? Запятая фиксирована или нет?
0
|
18.05.2014, 19:34 | 7 |
Складываете два бита (начиная с младших и заканчивая старшими).
Если при сложении сумма равна 2, то в дополнительную переменную записываете единичку. Учитываете эту переменную при следующем сложении битов. И так до победного конца.
0
|
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
|
||||||
18.05.2014, 19:36 | 8 | |||||
0
|
7791 / 6558 / 2984
Регистрация: 14.04.2014
Сообщений: 28,667
|
|
18.05.2014, 19:40 | 10 |
helper, где в твоём примере учёт порядка?
0
|
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
|
|
18.05.2014, 19:45 | 11 |
можно вообще без указания переноса наглядно обойтись mmcf, Добавлено через 1 минуту Это просто наглядный пример работы двоичного сумматора, так сказать, и только для положительных двоичных целых. Идея ясна а все остальное пусть дописывает автор
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
18.05.2014, 19:48 [ТС] | 12 |
0
|
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
|
|
18.05.2014, 19:59 | 13 |
это выделение текущего бита результата сложения.
вычисляет перенос.
0
|
100 / 100 / 47
Регистрация: 19.11.2012
Сообщений: 195
|
||||||
18.05.2014, 19:59 | 14 | |||||
Можно, например, так:
0
|
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
|
||||||
18.05.2014, 20:00 | 15 | |||||
выделение нулевого бита.
0
|
3 / 3 / 1
Регистрация: 29.05.2013
Сообщений: 226
|
|
25.05.2014, 14:29 [ТС] | 16 |
Простите мне мою тупость, но не могли бы вы объяснить?
10 строка: sum=bvector1[i]+bvector2[i]+carry; что происходит в программе? sum = 1+1+0 11 строка: rezult[i--]=sum&1; rezult[7]= выделяется нулевой элемент массива? А зачем? 12 строка: carry=sum>>1; 0 = 7 элементу массива?
0
|
71 / 45 / 24
Регистрация: 11.05.2014
Сообщений: 179
|
|
26.05.2014, 14:38 | 17 |
Складываются текущие биты, начиная с младших и кончая старшими, также прибавляется и перенос с предыдущего сложения (carry).
выделяется нулевой бит СУММЫ, он же текущий бит результата. это получение текущего бита переноса для передачи на следующую итерацию.
0
|
26.05.2014, 14:38 | |
26.05.2014, 14:38 | |
Помогаю со студенческими работами здесь
17
Вычитание в двоичной системе счисления Вычитание чисел в двоичной системе счисления Умножение чисел в двоичной системе счисления Оформить вывод числа в двоичной системе счисления Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |