Сложить двоичные числа и вывести ответ в двоичном и десятичном виде - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д