Сложить двоичные числа и вывести ответ в двоичном и десятичном виде - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Сложить двоичные числа и вывести ответ в двоичном и десятичном виде»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define max(a,b) ((a>b)?(a):(b))
#define min(a,b) ((a<b)?(a):(b))
 
int str2int(char* str) {
  int rezult=0;
  while(*str)
      rezult=(rezult<<1)+(*str++-'0');
  return rezult;
}
 
int main() {
 char n1[33],n2[33],sum[33];
 strcpy (n1,"110011");
 strcpy (n2,"10001100"); //или ввести 2 строки из символов '0' и '1'
 if (strlen(n1)!=strlen(n2)) {
  int fill_len = max(strlen(n1),strlen(n2))-min(strlen(n1),strlen(n2));
  char *filler = new char [max(strlen(n1),strlen(n2))+fill_len+1];
  sprintf (filler,"%0*d",fill_len,0);
  if (strlen(n1)<strlen(n2)) strcpy(n1,strcat(filler,n1));
  else strcpy(n2,strcat(filler,n2));
  delete filler;
 }
 printf("%032s\n+\n%032s\n=\n%032s\n"
    ,n1
    ,n2
    ,itoa(str2int(n1)+str2int(n2),sum,2)
    );
 printf("%32i\n+\n%32i\n=\n%32i\n"
    ,str2int(n1)
    ,str2int(n2)
    ,str2int(n1)+str2int(n2)
    );
 fflush (stdin);
 getchar();
 return 0;
}

ИИ поможет Вам:


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

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы