GaGe

과제 4 본문

SISS (2017-2018)/겨울방학 C언어 과제

과제 4

Sorrel 2018. 2. 10. 16:35

<문제>

출제자: 정*은
입력받은 숫자의 이진수 표현에서 1의 개수를 세는 코드를 짜기

 

 

<사고>

 

 정수의 이진법의 자리와 1을 AND로 묶어서 그 결과가 1이면 해당 자리의 값도 1인 점을 이용하여 해결

 

 

 

<코드>

 

#include<stdio.h>

main(){
 int num; //입력받는 수의 변수와 이진수를 가리킬 변수
 int count=0; //1의 갯수를 셀 변수

 

 printf("정수를 입력하시오 : ");
 scanf("%d", &num); //num변수는 입력받은 수를 가리킴

 

 while(num!=0){ //입력받은 수가 0이 아닐 때
  count+=(num&&1); //해당 자리의 수가 1과 AND 연산하여 1이 나온다면 count가 1 증가하고 0이 나온다면 count가 증가하지 않음
  num= num>>1; //비트자리를 오른쪽으로 1씩 옮김


 }


  printf("\n1의 갯수 : %d\n\n", count);
}

 

 

 

<실행 결과>

 

 

 

'SISS (2017-2018) > 겨울방학 C언어 과제' 카테고리의 다른 글

과제 3  (0) 2018.01.20
과제 2  (0) 2018.01.10
과제1  (0) 2018.01.10
Comments