>백엔드 개발 >C++ >다음을 중국어로 번역하세요: 10진수를 2진수로 변환하는 C 프로그램

다음을 중국어로 번역하세요: 10진수를 2진수로 변환하는 C 프로그램

王林
王林앞으로
2023-09-10 12:37:02849검색

다음을 중국어로 번역하세요: 10진수를 2진수로 변환하는 C 프로그램

C 프로그래밍 언어에서 10진수를 2진수로 변환하는 방법을 이해하려면 다음 예를 고려하세요.

예 1 - 25를 이진수로 변환합니다.

1단계 - 25/2 나머지: 1, 몫: 12

2단계 - 12/2 나머지: 0, 몫: 6

3단계 - 6/2 나머지: 0, 몫: 3

4단계 - 3 / 2 나머지: 1, 몫: 1

5단계 - 1 / 2 나머지: 1, 몫: 0

따라서 동등한 이진수는 다음과 같습니다: 11001

예 2 - 0.7을 이진수로 변환합니다.

1단계 - 0.7 * 2 = 1.4, 정수부 = 1

2단계 - 0.4 * 2 = 0.8, 정수부 = 0

3단계 - 0.8 * 2 = 1.6, 정수부 = 1

4단계 - 0.6 * 2 = 1.2, 정수 부분 = 1

5단계 - 0.2 * 2 = 0.4, 정수 부분 = 0

6단계 - 0.4 * 2 = 0.8, 정수 부분 = 0

따라서 해당 이진수는 다음과 같습니다. 0.101100

3단계 - 마지막으로 십진수 25.7의 이진수 값은 다음과 같습니다.

11001 + 0.101100 = 1101.101100

Example

다음은 십진수를 이진수로 변환하는 C 프로그램입니다.

Live Demonstration

#include<stdio.h>
int main(){
   long double fraDecimal,fraBinary,bFractional = 0.0,dFractional,fraFactor=0.1;
   long int dIntegral,bIntegral=0;
   long int intFactor=1,remainder,temp,i;
   printf("Enter any fractional decimal number: ");
   scanf("%Lf",&fraDecimal);
   dIntegral = fraDecimal;
   dFractional = fraDecimal - dIntegral;
   while(dIntegral!=0){
      remainder=dIntegral%2;
      bIntegral=bIntegral+remainder*intFactor;
      dIntegral=dIntegral/2;
      intFactor=intFactor*10;
   }
   for(i=1;i<=6;i++){
      dFractional = dFractional * 2;
      temp = dFractional;
      bFractional = bFractional + fraFactor* temp;
      if(temp ==1)
         dFractional = dFractional - temp;
      fraFactor=fraFactor/10;
   }
   fraBinary = bIntegral + bFractional;
   printf("Equivalent binary value: %lf",fraBinary);
   return 0;
}

출력

위 프로그램을 실행하면 다음과 같은 결과가 나옵니다-

Enter any fractional decimal number: 5.7
Equivalent binary value: 101.101100

위 내용은 다음을 중국어로 번역하세요: 10진수를 2진수로 변환하는 C 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제