Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#으로 10진수를 2진수로 변환하는 프로그램 만들기

C#에서 10진수(decimal)를 2진수(binary)로 변환하는 원리는 간단합니다. 주어진 10진수 값을 2로 계속 나누면서 나머지를 기록하고, 그 결과를 역순으로 이어 붙이면 2진수가 됩니다.

1단계: 10진수 값 설정

먼저 변환할 10진수 값을 다음과 같이 설정합니다.

decVal = 34;
Console.WriteLine("Decimal: {0}", decVal);

2단계: while 루프로 나머지 계산

값이 1 이상일 때까지 2로 나누는 과정을 반복하며, 각 단계에서의 나머지를 ToString() 메서드로 문자열에 추가합니다.

while (decVal >= 1) {
    val = decVal / 2;
    a += (decVal % 2).ToString();
    decVal = val;
}

나눗셈 연산자(/)로 몫을 구하고, 모듈로 연산자(%)로 나머지를 구해 차례대로 문자열 변수 a에 저장합니다.

3단계: 문자열 뒤집기

위 과정에서 구한 나머지는 낮은 자리수부터 기록되므로, 빈 문자열 변수를 선언한 뒤 루프를 돌며 순서를 거꾸로 뒤집어야 올바른 2진수가 됩니다.

string binValue = "";
for (int i = a.Length - 1; i >= 0; i--) {
    binValue = binValue + a[i];
}

전체 예제 코드

C#에서 10진수를 2진수로 변환하는 전체 코드는 다음과 같습니다. 직접 실행해 보세요.

using System;
using System.Collections.Generic;
using System.Text;
namespace Demo {
    class MyApplication {
        static void Main(string[] args) {
            int decVal;
            int val;
            string a = "";
            decVal = 34;
            Console.WriteLine("Decimal: {0}", decVal);
            while (decVal >= 1) {
                val = decVal / 2;
                a += (decVal % 2).ToString();
                decVal = val;
            }
            string binValue = "";
            for (int i = a.Length - 1; i >= 0; i--) {
                binValue = binValue + a[i];
            }
            Console.WriteLine("Binary: {0}", binValue);
            Console.Read();
        }
    }
}

실행 결과

Decimal: 34
Binary: 100010

10진수 34는 2진수로 100010임을 확인할 수 있습니다.

참고: Convert.ToString() 활용하기

.NET에서 제공하는 내장 메서드를 사용하면 위 과정을 한 줄로 처리할 수도 있습니다.

string binValue = Convert.ToString(34, 2); // 결과: 100010

Convert.ToString(값, 진법) 형태로 호출하면 지정한 진법의 문자열을 바로 얻을 수 있어, 실무에서는 더욱 간편하게 활용할 수 있습니다.