C# 개념, 문법 정리

이동근·2026년 1월 13일

C#

목록 보기
5/9

C#

  • C# : 마이크로소프트(Microsoft)가 만든 객체지향 프로그래밍 언어

    • Windows 프로그램, 웹, 게임, 앱, 서버 개발에 사용

    • C#은 .NET 플랫폼에서 동작하는 현대적인 객체지향 언어

C#을 통해 만들 수 있는 기능

분야예시
데스크톱 앱윈도폼, WPF
ASP.NET, Blazor
게임Unity
모바일Xamarin, .NET MAUI
서버Web API, 백엔드
IoT장비 제어 프로그램

입력, 출력

입력 출력 예시

namespace FirstProgram
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string  a = Console.ReadLine();
            Console.WriteLine(a);
        }
    }
}

// "출력"이라고 입력 
// 출력 

기본 자료형

분류자료형설명
정수int정수 (가장 기본적으로 사용)
정수long큰 정수
실수float소수점 숫자 (낮은 정밀도)
실수double소수점 숫자 (기본 실수형)
실수decimal정확한 소수 계산 (금융)
문자char문자 1개
논리bool참 / 거짓
문자열string문자열 : 문자의 집합

문자열 → 자바와 비교

java에서 문자열 사용법

String a = "hello";
String b = "hello";

System.out.println(a == b);      // ❌ 참조 비교
System.out.println(a.equals(b)); // ✅ 내용 비교

C#에서 문자열 사용법

string a = "hello";
string b = "hello";

Console.WriteLine(a == b); // ✅ 내용 비교

java에서는 문자열을 비교하기 위해서 equals()라는 메서드를 이용하여 문자열 내용을 비교할 수 있고

C#은 ==라는 연산자를 이용하여 문자열 내용을 비교할 수 있다.

이유 : C#에서는 string에 대해 == 연산자를 오버로딩되어 있음 → 이로 인해 문자열 내용 비교를 수행

비교 연산자

연산자의미예시결과
==같다a == b같으면 true
!=같지 않다a != b다르면 true
>크다a > b크면 true
<작다a < b작으면 true
>=크거나 같다a >= b크거나 같으면 true
<=작거나 같다a <= b작거나 같으면 true
  • bool 결과는 항상 (true/false)

논리 연산자

연산자의미설명명칭예시
&&AND둘 다 참이면 참논리합 연산자a > 0 && b > 0
||OR하나라도 참이면 참논리곱 연산자a > 0 || b > 0
!NOT참 ↔ 거짓 반전논리 부정 연산자!isOk

비트 연산자

연산자이름설명예시 (2진수 계산)결과
&AND두 비트가 모두 1이면 10101 & 00110001 → 1
|OR두 비트 중 하나라도 1이면 10101 | 00110111 → 7
^XOR두 비트가 다르면 1, 같으면 00101 ^ 00110110 → 6
~NOT비트를 반전~01011010 → -6 (2의 보수)
<<왼쪽 시프트비트를 왼쪽으로 이동, 오른쪽 0 채움0101 << 11010 → 10
>>오른쪽 시프트비트를 오른쪽으로 이동, 부호 유지0101 >> 10010 → 2

비트 연산자 사용 예시

int a = 5;   // 0101
int b = 3;   // 0011

Console.WriteLine(a & b);  // 1
Console.WriteLine(a | b);  // 7
Console.WriteLine(a ^ b);  // 6
Console.WriteLine(~a);     // -6
Console.WriteLine(a << 1); // 10
Console.WriteLine(a >> 1); // 2

1의 보수 : 모든 비트를 반전시키는 것

  • 0 → 1

  • 1 → 0

부호2진수1의 보수 값1의 보수
+500000101-511111010
+800001000-811110111
  • 11110111 은 부호 없는 정수에서는 247이지만
    1의 보수에서는 부호도 반전을 줘야하기 때문에 -8로 표현

2의 보수 : 어떤 수의 모든 비트를 반전(1의 보수)한 후 1을 더한 값

  • 2의 보수를 사용하는 이유 : 1의 보수의 치명적인 문제 → 0이 2개 존재
1의 보수 값
+0:00000000
-0:11111111
  • 0이 2개면 비교 연산이 복잡해짐 → 이로 인해 2의 보수가 등장

  • 2의 보수의 장점 : 0이 하나만 존재

  • 2의 보수는 1의 보수값의 +1하면 나옴

    ex
    8 = 00001000
    8 + 1 = 9
    00001000 + 1 = 00001001 = 9

참조형

profile
안녕하세요

0개의 댓글