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

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

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

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

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

textual
Листинг программы
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #define max(a,b) ((a>b)?(a):(b))
  5. #define min(a,b) ((a<b)?(a):(b))
  6.  
  7. int str2int(char* str) {
  8.   int rezult=0;
  9.   while(*str)
  10.       rezult=(rezult<<1)+(*str++-'0');
  11.   return rezult;
  12. }
  13.  
  14. int main() {
  15.  char n1[33],n2[33],sum[33];
  16.  strcpy (n1,"110011");
  17.  strcpy (n2,"10001100"); //или ввести 2 строки из символов '0' и '1'
  18.  if (strlen(n1)!=strlen(n2)) {
  19.   int fill_len = max(strlen(n1),strlen(n2))-min(strlen(n1),strlen(n2));
  20.   char *filler = new char [max(strlen(n1),strlen(n2))+fill_len+1];
  21.   sprintf (filler,"%0*d",fill_len,0);
  22.   if (strlen(n1)<strlen(n2)) strcpy(n1,strcat(filler,n1));
  23.   else strcpy(n2,strcat(filler,n2));
  24.   delete filler;
  25.  }
  26.  printf("%032s\n+\n%032s\n=\n%032s\n"
  27.     ,n1
  28.     ,n2
  29.     ,itoa(str2int(n1)+str2int(n2),sum,2)
  30.     );
  31.  printf("%32i\n+\n%32i\n=\n%32i\n"
  32.     ,str2int(n1)
  33.     ,str2int(n2)
  34.     ,str2int(n1)+str2int(n2)
  35.     );
  36.  fflush (stdin);
  37.  getchar();
  38.  return 0;
  39. }

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы