我在编写用于加、减、乘和除二进制的程序时遇到了一些问题。我遇到的主要问题是能够限制程序提供 1 和 0(二进制部分)的输出,并且它还需要能够操作二进制,如果它是十进制的,例如 101.1 或 1.0101。下面是我在研究期间在网上找到的一个程序,但我不完全理解它是如何工作的,我自己的实现也不能计算带有小数的二进制。我不想使用数组,因为它会根据您为进行这些计算而留出的位来限制最大输出。
期待一些潜在的想法。
#include<stdio.h>
int main(){
long int binary1,binary2;
int i=0,remainder = 0,sum[20];
printf("Enter any first binary number: ");
scanf("%ld",&binary1);
printf("Enter any second binary number: ");
scanf("%ld",&binary2);
while(binary1!=0||binary2!=0){
sum[i++] = (binary1 %10 + binary2 %10 + remainder ) % 2;
remainder = (binary1 %10 + binary2 %10 + remainder ) / 2;
binary1 = binary1/10;
binary2 = binary2/10;
}
if(remainder!=0)
sum[i++] = remainder;
--i;
printf("Sum of two binary numbers: ");
while(i>=0)
printf("%d",sum[i--]);
return 0;
}