Convert 클래스란?
- 입력받은 데이터를 숫자로 변환할 때 사용한다.
- Convert 클래스의 메소드들은 이중Parse()와 똑같이 사용할 수 있다.
- ToInt32(), ToSingle(), ToDouble()과 같이 string을 숫자형으로 바꾸는 여러가지 메소드를 제공한다.
- ToString()이나 ToInt32() 메소드는 숫자를 원하는 진수로 처리할 수 있다.
(이를 통해 쉽게 진수 변환이 가능하다.)
Console.ReadLine()
- 입력받은 데이터는 모두 string이다.
예시
ToString(123, 2) = 123을 2진수로 표현한 문자열로 바꾸어 준다.
Convert에는 string을 숫자로 바꾸는 메소드뿐만 아니라 ToString(),ToBye(),ToBoolean(),ToChar(),ToDateTime() 등과 같이 여러 자료형 사이의 변환도 지원한다.
예제 코드
using System;
using static System.Console;//Console단어를 생략(코드길이줄어둠)
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
//int x, y를 선언한다.
int x, y;
//첫 번째 숫자를 입력하라는 안내를 출력합니다.
Write("첫번째 숫자를 입력하세요: ");
//Console.ReaLine()으로 값을 받아서 Int32형으로 변환하여 x에 할당한다.
x = Convert.ToInt32(ReadLine());
//첫 번째 숫자를 입력하라는 안내를 출력합니다.
Write("두 번째 숫자를 입력하세요: ");
//Console.ReaLine()으로 값을 받아서 Int32형으로 변환하여 y에 할당한다.
y = Convert.ToInt32(ReadLine());
//x와 y의 값을 더해 출력한다.
WriteLine("{0} + {1} = {2}", x, y, x + y);
//2,8,10,16진수 출력하기
//short value를 선언하고 MaxValue를 할당한다.short은 Int16과 같은 자료형이다.
short value = short.MaxValue; // = Int16.MaxValue
//콘솔에 "2진수, 8진수, 10진수, 16진수로 출력하기."라고 출력한다.
WriteLine("\n2진수, 8진수, 10진수, 16진수로 출력하기.");
//2진수 출력
//int baseNum은 진수를 의미한다.
int baseNum = 2; //진수를 2진수로 정한다.
//Convert.ToString(value, baseNum)을 사용하여 value값을 2진 문자열로 변환하여 s에 할당한다.
string s = Convert.ToString(value, baseNum);
//Convert.ToInt32(s, baseNum)을 사용하여 2진 문자열을 저장하고 있는 s의 값을 Int32 형으로 변환한다.
int i = Convert.ToInt32(s, baseNum);//baseNum 파라미터가 문자열을 몇 진수로 해석할지 알려준다.
//i,baseNum,s를 지정된 형식으로 출력한다.
//{0}은 첫 번째 데이터인 i값을 출력.
//{1,2}는 두번째 데이터인 baseNum을 2자리로.
//{2,16}은 세 번째 데이터 s를 16자리에 출력.
WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);//출력이 정렬되어 보이도록 출력 형식에 자릿수를 사용한다.
//8진수 출력 - 위의 과정을 반복.
baseNum = 8;
s = Convert.ToString(value, baseNum);
i = Convert.ToInt32(s, baseNum);
WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
//10진수 출력 - 위의 과정을 반복.
baseNum = 10;
s = Convert.ToString(value, baseNum);
i = Convert.ToInt32(s, baseNum);
WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
//16진수 출력 - 위의 과정을 반복.
baseNum = 16;
s = Convert.ToString(value, baseNum);
i = Convert.ToInt32(s, baseNum);
WriteLine("i = {0}, {1,2}진수 = {2,16}", i, baseNum, s);
}
}
}
결과
첫번째 숫자를 입력하세요: 121
두번째 숫자를 입력하세요: 456
121 + 456 = 577
2진수, 8진수, 10진수, 16진수로 출력하기.
i = 32767, 2진수 = 111111111111111
i = 32767, 8진수 = 77777
i = 32767, 10진수 = 32767
i = 32767, 16진수 = 7fff
'C# > 문법 정리' 카테고리의 다른 글
C# - 산술 연산자(Arithmetic Operators) (0) | 2024.06.23 |
---|---|
C# - 연산자(Operator) (0) | 2024.06.23 |
C# - 문자열(string)과 숫자의 변환 (0) | 2024.06.22 |
C# - 캐스팅(Casting)과 자료형 변환 (0) | 2024.06.21 |
C# - 형식지정자를 사용한 Console.WriteLine 메소드 (0) | 2024.06.15 |