【 C 언어 】 10 진 수 를 2 진 으로 바 꾸 고 출력 합 니 다.

2290 단어 c 언어 데모
10 진법 을 2 진법 으로 바 꾸 고 출력 (정형 을 예 로 들 면) 은 먼저 10 진법 을 2 진법 으로 바 꾸 는 알고리즘 을 명 확 히 해 야 한다. 필요 한 전환 수 를 2 로 나 누고 소득 여 수 를 k1 로 나 누 며 소득 자 를 2 로 나 누고 소득 여 수 는 k2 로 나 누 어야 한다.숫자 를 읽 을 때 마지막 나머지 부터 읽 습 니 다. 즉, kn, k (n - 1)... k2, k1 입 니 다.소득 수 는 바로 전 환 된 2 진수 (2 취 여 법 제외) 이다. 예 를 들 어 20 을 2 진수 20 / 2 로 전환한다.   대략 10 이다   나머지 는 0 이다   k1 10/2   상의 하 다     나머지 는 0 이다   k2 5/2     상의 하 다     나머지 는 1 이다   k3 2/2     상의 하 다     나머지 는 0 이다   k4 1/2     상의 하 다     나머지 는 1 이다   k5 그러므로 이 진수: 10100 
프로 그래 밍 사고: 입력 함 수 를 input 로 정의 하고 상 자 는 quotint 이 며 나머지 는 remainder 입 니 다.계산 후 얻 은 나머지 를 한 배열 result 로 저장 한 다음 역순 으로 출력 할 수 있 습 니 다.
코드 는 다음 과 같 습 니 다:
#include 
int main(void) {
    
    //        
    int input = 0 ;
    printf("       :");
    scanf("%d", &input);
    
    //        
    int quotient = input;
    int remainder = 0;
    int result [100];
    int  i = 0;
    
    while (quotient != 0) {
        remainder = quotient % 2;      //   
        result [i] = remainder;       //           
        i++;
        quotient = quotient / 2;     //  
    }
    i--;      //while        i,    
    
    //      
    printf("       :");
    for ( ; i >= 0 ; --i) {
        printf("%d", result[i]);
    }
    printf("
");     return 0 ; }

그러나 이 경우 입력 데이터 의 크기 를 몰라 미리 정 의 된 배열 이 모든 잔 수 를 저장 하지 못 하 는 경우 가 있다.모든 여 수 를 구체 적 인 값 으로 바 꾸 면 더욱 적응성 이 있 고 수출 도 편리 하 다.
사고방식: 출력의 값 을 result 로 정의 하면 result 의 개 위 는 k1 과 같 고 10 위 는 k2 와 같 음 을 발견 할 수 있 습 니 다. time 을 정의 하여 result 의 진 위 를 기록 합 니 다. 한 번 들 어 갈 때마다 time * 10 입 니 다.time * k 를 통 해 result 의 개 100 천만... 비트 를 제어 할 수 있 습 니 다.
코드 는 다음 과 같 습 니 다:
#include 
int main(void) {
    
    //        
    int input;
    
    printf("       :");
    scanf("%d", &input);
    
    //        
    int quotient = input;
    int remainder = 0;
    int result = 0;
    int time = 1;
    
    while (quotient != 0 ) {
        remainder = quotient % 2;       //   
        result += remainder * time;    //           
        quotient = quotient / 2;      //  
        time *= 10;
    }

  //       
    printf("       :%d
",result); return 0; }

 
 

좋은 웹페이지 즐겨찾기