이진수를 더하고, 빼고, 곱하고 나누기위한 프로그램을 작성하는 데 문제가 있습니다. 내가 겪고있는 주요 문제는 1과 0 (이진 부분)의 출력을 제공하도록 프로그램을 제한 할 수 있고 또한 101.1이나 1.0101 같은 십진수로 이진수를 조작 할 수 있어야합니다. 아래의 프로그램은 내가 연구 중에 온라인으로 찾았지만 아직 완전히 내 자신을 구현하는 방법으로 작동하지 않습니다 또는 그들에 소수에서 이진 컴퓨팅이 가능하지 않습니다. 배열을 사용하고 싶지는 않습니다.이 계산을 수행 할 비트에 따라 최대 출력을 제한합니다.C에서 이진 조작
몇 가지 잠재적 인 아이디어가 기대됩니다.
#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;
}
이 충격적인 들릴 수도 있지만, 오늘날의 컴퓨터는 이진수로이 값을 모두 처리 ...' int a = 10; int b = 10; int c = a + b;''Voila, 바이너리 합계가 있습니다 ... 당신이 가진 이슈는 [** 바이너리로 인쇄하는 것입니다 **] (http://stackoverflow.com/questions/111928/is-there -a-printf-converter-to-binary-format) 형식을 사용합니다. (그리고 Ivaylo가 지적했듯이 : 입력으로 가져 오기 ...) – ppeterka
이 프로그램은 십진법 이진수를 처리 할 수 없습니다. '% ld'을 사용하여 입력 번호를 읽습니다. 아마'% s'을 사용하여 입력을 문자열로 읽어야합니다. –
'배열을 사용하고 싶지 않습니다.이 계산을 수행하기 위해 따로 떼어 놓은 비트에 따라 최대 출력을 제한합니다.이 또한 충격일지도 모르지만 데이터 형식은 무한하지 않습니다. – ppeterka