Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/103: Рейтинг темы: голосов - 103, средняя оценка - 4.52
6 / 6 / 1
Регистрация: 17.10.2011
Сообщений: 165
1

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

24.10.2011, 00:14. Показов 19253. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите срочно надо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2011, 00:14
Ответы с готовыми решениями:

Как увеличить число на битовом уровне?
1. Увеличить счетчик на 1. Значения: 31; 56; -25; 2. Операция сравнения >. Значения: 44 и 44; 46 и...

Как сложить два числа
как сложить два числа в с++

Как сложить побитно два числа в двоичной с/с
Добрый день форумчане! У меня программа по переводу из 10 с/с в 2 с/с. Она сделана используя...

Как сложить два случайных числа из массива?
Как сложить два случайных числа из массива с++

32
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
24.10.2011, 12:22 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от greeezz Посмотреть сообщение
11100101 + 1101110 = 101010011 = 339
Это обычное арифметическое сложение двоичных чисел, а не побитовое сложение, о котором говорил я.
0
278 / 173 / 21
Регистрация: 10.07.2011
Сообщений: 441
24.10.2011, 17:38 22
Цитата Сообщение от silent_1991 Посмотреть сообщение
Это обычное арифметическое сложение двоичных чисел, а не побитовое сложение, о котором говорил я.
Соверешенно верно. Просто логическое или | (побитове сложение) не подходит для сумирования двух числ. Я и привел пример арифмитического сложения потому что подозреваю что автор темы пока еще не изучил разницу между ними.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
24.10.2011, 20:16 23
Цитата Сообщение от greeezz Посмотреть сообщение
не подходит для сумирования двух числ
Точно))

Цитата Сообщение от greeezz Посмотреть сообщение
автор темы пока еще не изучил разницу между ними
Ещё точнее.

Не по теме:

А вообще, если бы ТС хоть что-то попробовал сделать сам, то ни я, ни Jupiter не грузили бы его побитовым ИЛИ.

0
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184
15.10.2017, 16:54 24
Добавлено через 16 секунд
Объясните пожалуйста построчно данную функцию
C++
1
2
3
4
5
6
7
8
9
10
int str2int(char* str)
{
  int rezult=0;
  while(*str)
{
      rezult=rezult*2+(*str++-'0');
  }
  //cout << rezult << endl;
  return rezult;
}
0
3 / 3 / 1
Регистрация: 01.01.2015
Сообщений: 130
15.10.2017, 16:58 25
Всё же очевидно... Думаю, стоило бы разобраться с основными стопами C++.
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
15.10.2017, 17:34 26
Цитата Сообщение от Programist_NKPC Посмотреть сообщение
*str++
Неочевидно и, полагаю, неверно. Скобки нужны.
Хотя нет, вроде верно. Но скобки все равно лишними не будут.
0
3 / 3 / 1
Регистрация: 01.01.2015
Сообщений: 130
15.10.2017, 17:38 27
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Неочевидно и, полагаю, неверно. Скобки нужны.
Хотя нет, вроде верно. Но скобки все равно лишними не будут.
А так?
C++ (Qt)
1
2
3
4
5
6
int str2int(char* str) {
  int rezult=0;
  while(*str)
      rezult=(rezult<<1)+(*str++-'0');
  return rezult;
}
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
15.10.2017, 17:47 28
я имел в виду *(str++), явно задать приоритет сложения перед разыменованием
0
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184
15.10.2017, 18:14 29
Наиболее интересна данная строка
C++
1
rezult=rezult*2+(*str++-'0');
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
15.10.2017, 19:02 30
result*2 = result<<1 это сдвиг числа влево, переход к следующей младшей двоичной цифре
*str - '0' это прибавление к результату числа, из текущего символа строки str. Именно числа а не его ASCII кода
str++ это переход к следующему символу
1
55 / 39 / 18
Регистрация: 21.05.2015
Сообщений: 184
15.10.2017, 20:41 31
Спасибо, а как это можно кратко сформулировать в одно предложение, объясняющее задачу, что выполняет данная строка
0
3 / 3 / 1
Регистрация: 01.01.2015
Сообщений: 130
15.10.2017, 20:48 32
Побитовый сдвиг, я так полагаю
0
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
16.10.2017, 10:56 33
Цитата Сообщение от ZRZ_CFB Посмотреть сообщение
Побитовый сдвиг, я так полагаю
Побитовый сдвиг это только первая операция в строке. А вся строка - добавление младшего двоичного разряда к числу.
0
16.10.2017, 10:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2017, 10:56
Помогаю со студенческими работами здесь

Как правильно сложить два больших (64 бита) числа?
Допустим есть два двоичных числа A и B. Размер каждого из них = 64 бита. Вопрос такой: 1) 64...

Сложить два длинных числа
Есть класс Decimal который наследует виртуальную функцию сложения массивов от базового класса. В...

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

Сложить два числа в одно
Здравствуйте, есть два числа в каждом может бить цифра от 1 до 20, пример 5 17 Возможно ли эти...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru