Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Сложение двоичных чисел


Автор: Weman 5.4.2006, 21:10
Помогите пожалуйста с задачей:
Надо сложить два двоичных числа. Числа по условию одинаковой длины и хранятся в виде строк.

Код приводите пожалуйста на С. В крайнем случае на С++.
Спасибо!

Автор: nikitao 5.4.2006, 21:13
Weman, собственно говоря приведите свой идеи ,а лучше наработки в виде кода.А иначе в Центр помощи smile

Автор: MAKCim 5.4.2006, 21:46
точно так же как в 10-ой СС - в столбик

100000110101
+
000001010011
=
000010001000

Автор: threef 6.4.2006, 14:16
Код

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int str2int(char* str)
{
  int rezult=0;
  while(*str)
      rezult=rezult*2+(*str++-'0');
  printf("%d\n",rezult);
  return rezult;
}

main()
{
    char number_one[33],number_two[33],sum[33];
    scanf("%s %s",number_one,number_two);    
    printf("%032s\n+\n%032s\n=\n%032s\n"
        ,number_one
        ,number_two
        ,itoa(str2int(number_one)+str2int(number_two),sum,2)
        );
}

Автор: Бонифаций 6.4.2006, 14:35

такой способ небезопасен. Если кто-то введет вместо чисел (скажем) "привет мир" - получишь левые резальтаты.

Лучше уж стандартной strtol, там можно базу указать.

Автор: ZeusAtVingrad 12.4.2006, 11:34
А если залить строки в bitset, забрать оттуда числа и сложить?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)