C에서 이진수를 십진수로 변환하는 방법

Ceseo Ijinsuleul Sibjinsulo Byeonhwanhaneun Bangbeob



이진수는 0과 1의 조합인 반면 십진수는 밑이 10인 숫자입니다. C 프로그래밍에서는 코드 성능을 향상시키고 학습자가 쉽게 이해할 수 있도록 이진수를 십진수로 변환합니다.

이 지침은 C에서 이진수를 십진수로 변환하는 방법에 대해 설명합니다.

개념 자체에 들어가기 전에 C에서 이진수와 십진수가 무엇인지 살펴보겠습니다.







C의 이진수 및 십진수 형식

이진수는 0과 1이라는 두 자리 숫자의 조합으로 표현되는 숫자로, 2진법이라고 합니다. 반면 10진수는 0에서 9까지의 숫자로 구성된 10진수입니다.



2를 의미하는 이진수라는 이름에서 알 수 있듯이 0과 1의 두 숫자 조합 형태의 숫자가 있을 때 이를 이진수라고 합니다. 그것은 기본 2 숫자 시스템이라고합니다.



C에서 이진수를 십진수로 변환하는 이유

이진수로 작업하는 것은 0과 1의 가능한 조합이 많기 때문에 개발자에게 어려운 일입니다. 반면에 10진수는 이해하고 처리하기 쉽기 때문에 C 프로그램에 더 빠르고 효율적인 방법입니다. C에서 2진수를 10진수로 변환하려면 모든 2진수에 적절한 2의 거듭제곱을 곱하고 결과를 더하는 작업이 포함되며, 이는 루프를 사용하여 수행됩니다.





C에서 이진수를 십진수로 변환하는 간단한 알고리즘

다음은 6개의 간단한 단계를 사용하여 C에서 이진수를 십진수로 변환하는 간단한 알고리즘입니다.

  • 사용자의 입력으로 이진수를 가져옵니다.
  • 변수 'decimal'을 0으로 초기화하고 변수 'base'를 1로 초기화합니다.
  • 모듈러스 연산자(%)를 사용하여 이진수의 가장 오른쪽 자리를 추출하고 이 자리와 밑의 곱을 십진수 변수에 더합니다.
  • 기본 변수에 2를 곱합니다.
  • 정수 나누기(/)를 사용하여 이진수에서 맨 오른쪽 숫자를 제거합니다.
  • 모든 숫자가 처리될 때까지 3-5단계를 반복합니다.
  • 'decimal' 변수에 저장된 이진수의 십진수 값을 표시합니다.

C에서 이진수를 십진수로 변환

다음은 C 프로그래밍에서 이진수를 십진수로 변환하는 간단한 코드입니다.



#include

#include <수학.h>

정수 기본 ( ) {

;

printf ( '이진수를 입력하세요: ' ) ;

스캔프 ( '%lld' , & ) ;

printf ( '2진수 %lld = 10진수 형식 %d' , , binaryToDecimal ( ) ) ;

반품 0 ; }

정수 binaryToDecimal ( ) {

정수 12월 = 0 , = 0 , 아르 자형 ;

~하는 동안 ( != 0 ) {

아르 자형 = % 10 ;

/= 10 ;

12월 += 아르 자형 * ( 2 , ) ;

++ ;

}

반품 12월 ;

}

위의 코드에서 전역 함수를 이름으로 만듭니다. 'binaryToDecimal' . 그런 다음 기본에서 long long 변수를 다음과 같이 선언합니다. 'ㅏ' 사용자에게 이진수를 추가하고 다음을 호출하여 십진수로 변환하도록 요청합니다. 'binaryToDecimal' 매개변수가 a”인 함수. 에서 'binaryToDecimal' 함수 정의 while 루프를 통한 십진수 변환.

산출

내장형을 사용할 수도 있습니다. strtol() C 프로그래밍에서 이진수를 십진수로 변환하는 함수.

다음은 이러한 기능에 대한 코드입니다.

#include

#include

정수 기본 ( ) {

이진 문자열 [ ] = '1110' ;

* ptr ;

소수점_값 ;

소수점_값 = 추락 ( 이진 문자열 , & ptr , 2 ) ;

printf ( '이진 문자열' % 에스 '는 10진수 값 %ld와 같습니다. \N ' , 이진 문자열 , 소수점_값 ) ;

반품 0 ;

}

위의 코드는 이진 문자열을 변환합니다. '1110' 를 사용하여 동등한 10진수 값으로 strtol() 함수는 이진 문자열, char 포인터에 대한 포인터 및 숫자 체계의 밑을 인수로 사용합니다. 마지막으로 다음을 사용하여 결과를 콘솔에 인쇄합니다. printf().

산출

결론

우리가 알고 있듯이 인간은 관리하기 어렵기 때문에 이진수에 비해 십진수에 익숙합니다. 10진수는 10진수이므로 산술 연산이 용이하고 2진수에 비해 처리 속도가 빨라 2진수를 10진수로 변환합니다. 위의 개요는 사용자 정의 함수 및 내장된 C 프로그램을 사용하여 이진수를 십진수로 변환하는 방법을 설명했습니다. strtol() 기능.