Menu
Coddy logo textTech

Introduction

Coddy의 수학 수수께끼 코스 레슨 — 20개 중 18번째.

이진수(binary number)는 2진법 또는 이진 기수법으로 표현된 수로, 일반적으로 "0"(영)과 "1"(일)이라는 두 개의 기호만을 사용하는 수학적 표현 방식입니다. [위키백과, 우리 모두의 백과사전]

표기법 110=12, 210=102, 310=112, 410=1002는 10진법(base-10 numeral system)에서의 숫자 1, 2, 3, 4가 이진법에서의 1, 10, 11, 100과 같음을 의미합니다.

이진법으로 수를 세는 것은 다른 진법에서 수를 세는 것과 비슷합니다. 한 자리 숫자부터 시작하여, 각 기호를 오름차순으로 거치며 수를 세어 나갑니다.

 

10진수 정수를 그에 해당하는 2진수(이진수)로 변환하려면, 해당 숫자를 2로 나눕니다. 나머지는 최하위 비트(가장 오른쪽 비트)가 됩니다. 몫을 다시 2로 나누고, 그 나머지가 다음 최하위 비트가 됩니다. 이 과정은 몫이 1이 될 때까지 반복됩니다. 2로 나눌 때 각 나머지는 0 또는 1이어야 하므로, (마지막 몫인 1을 포함한) 나머지들의 시퀀스가 이진수 값을 형성합니다. 예를 들어, 510은 다음과 같이 1012로 표현됩니다.

5를 2로 나누면 몫은 2이고 나머지는 1입니다: 5:2 = 2(1). 따라서 최하위 비트는 1입니다. 다음으로, 2:2=1(0)입니다. 따라서 그다음 최하위 비트는 0이고, 그다음 비트는 1입니다.

 

challenge icon

챌린지

쉬움

10진수 정수를 입력받아 그에 해당하는 이진수를 문자열 형식으로 반환하는 함수 calcBinary를 작성하세요.

내장 함수를 사용하지 않고 구현해 보세요.

직접 해보기

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"

int main() {
    int n;
    if (scanf("%d", &n) != 1) n = 0;
    char* r = calcBinary(n);
    printf("%s\n", r);
    return 0;
}

수학 수수께끼의 모든 레슨

9Binary numbers

Introduction