본문 바로가기
Program Language/C#

Part1. C# 첫발 내딛기(14. Convert 클래스)

by 토담이아빠 2023. 1. 9.

Convert 클래스

 

입력받은 데이터를 숫자로 변환하는 메서드로 Parse()와 TryParse()를 이전 포스팅에서 정리했습니다. 이와 유사한 기능을 하는 Convert 클래스의 메서드들에 대해서 추가로 정리했습니다.


Convert 클래스와 2진수, 8진수, 16진수 출력

 

Convert 클래스는 ToInt32(), ToSingle(), ToDouble() 과 같이 string을 숫자형으로 바꾸는 여러 가지 메서드를 제공하는 데 사용법은 Parse()의 사용법과 같습니다.

 

Convert 클래스의 ToString()이나 ToInt32()메소드는 숫자를 원하는 진수로 처리할 수 있습니다. 이를 이용하면 쉽게  진수변환이 가능합니다. 예를 들어 ToString(123, 2) 메서드는 123을 2진수로 표현한 문자열로 바꾸어 줍니다. 다음은 Convert 클래스의 ToString을 이용한 진수변환 예제입니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _Convert
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int x, y;

            Console.Write("첫 번째 숫자를 입력하세요: ");
            x = Convert.ToInt32(Console.ReadLine()); //정수형으로 변환하여 저장한다.
            Console.Write("두 번째 숫자를 입력하세요: ");
            y = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("{0} + {1} = {2}", x, y, x + y);

            // 2진수, 8진수, 10진수, 16진수로 출력하기
            short value = short.MaxValue; // Int16.MaxValue = 32767
            Console.WriteLine("\n2진수, 8진수, 10진수, 16진수로 출력하기");

            int baseNum = 2;
            string s = Convert.ToString(value, baseNum); //2진수로 바꾼다.
            int i = Convert.ToInt32(s, baseNum);
            Console.WriteLine("i = {0}, {1, 2}진수= {2, 16}", i, baseNum, s);

            baseNum = 8;
            s = Convert.ToString(value, baseNum); //8진수로 바꾼다.
            i = Convert.ToInt32(s, baseNum);
            Console.WriteLine("i = {0}, {1, 2}진수= {2, 16}", i, baseNum, s);

            baseNum = 10;
            s = Convert.ToString(value, baseNum); //10진수로 바꾼다.
            i = Convert.ToInt32(s, baseNum);
            Console.WriteLine("i = {0}, {1, 2}진수= {2, 16}", i, baseNum, s);

            baseNum = 16;
            s = Convert.ToString(value, baseNum); //16진수로 바꾼다.
            i = Convert.ToInt32(s, baseNum);
            Console.WriteLine("i = {0}, {1, 2}진수= {2, 16}", i, baseNum, s);
        }
    }
}

i, baseNum, s를 지정된 형식으로 출력합니다. {0}은 첫 번째 데이터인 i값을 출력하고, {1, 2}는 두 번째 데이터인 baseNum을 2자리로, {2, 16}은 세 번째 데이터 s를 16자리로 출력하라는 의미입니다. 자릿수는 오른쪽으로 정렬되어 보입니다.


결과


[Review]

"초보자를 위한 C# 200제(2판)"  저자 / 강병익

댓글