ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# 기초 정리
    C# 2020. 6. 25. 18:27
    			string inValue;
                inValue = Console.ReadLine();
                Console.WriteLine(inValue);

     

    소프트웨어 (정신)

    -> OS : 하드웨어에 촵 붙어서 동작한다. 이 운영체제를 이용하는 소프트웨어를 Application이라고 한다.

               Application 은 운영체제에 종속적.

              Windows, Mac OS,Linux ...

    하드웨어(몸)

     

    APP
    OS
    HW

    이 운영체제에 종속적인 문제를 해결하기 위해 플랫폼이란 개념이 등장한다,

    APP
    플랫폼(가상컴퓨터)
    OS
    HW

    앱입장에서는 하나만 만들면 다른 곳 다 돌아간다. 하지만 운영체제가 다르면 문제가 생기는데, 각각의 운영체제마다 플랫폼의 설치파일을 종류마다 다 따로 만든다.

     

    플랫폼(Virtual Machine , 자바는 JVM) => 마이크로소프트 (.NET)

    JVM -> Dalvic  = 안드로이드

     

    다른 운영체제도 마이크로소프트 꺼 쓸 수 있게 만든 플랫폼이 .NET Framework 이다. 

    .NET 프레임워크 기반의 APP을 만들 수 있는 언어가 C#이다. C++ + ++해서 #이 됬다.

     

     

    APP
    OS / Firmware 펌웨어(드라이버) : 칩을 동작시키는 소프트웨어

    각 장치용 드라이버를 설치해야 장치를 동작시킬 수 있다. 

     

    요 빨간 부분에 펌웨어 즉 드라이버가 설치되어 있다. 옛날옛적엔 펌웨어가 덩어리로 있었는데, 이 펌웨어들을 제어하기 위한 프로그램이 필요하다. OS의 처음 등장은 이 펌웨어를 관리하기 위해서 등장했으나 점점 덩치가 커져서 OS가 되었다. 이 OS외부에 있는 프로그램을 실행하기 위해서 하드디스크에 exe파일로 관리하고 메모리에 실행파일을 로딩한다. 실행 파일을 코드, 데이터, BSS, heap, stack 등등으로 나눠서 메모리에 올리는데, 코드들 중에서 가장 먼저 실행할 코드를 엔트리 포인트라고 한다.  엔트리 포인트로부터 코드가 실행되어 메모리에 올라간 것들이 유기적으로 움직이는 것을 프로그램이 실행된다고 한다.

     

    C# 소스코드 -> 빌드 -> CLR로더(.NET 프레임워크), 중간언어(플랫폼에서 돌아가는 언어), EXE파일 -> 실행

     

    중간언어 : CIL ( Common Intermediate Language ) = IL = MSILde

     

     CLR (Common Langauge Runtime) 

    '

     

     

     

    메타 데이터 : 데이터를 위한 데이터

    실제 필요한 데이터가 아닌 데이터에 대한 정보를 가지고 있다. FileFormat . 보통 앞 부분(head)에 저장된다.

     

     

     

     

     

     

    문자열 입력

    string inValue;
                inValue = Console.ReadLine();
                Console.WriteLine(inValue);

     

     

    실수형 변수의 2진수 표기법

    IEEE754

     

    41.625를 2진수화 시켜보자

     

    41.625 을 메모리에서 저장된 형태로 보면 00 80 26 42 이다.

     

    32비트 중에서 부호비트는 1비트 지수부 8비트 가수부는 나머지

     

    41.625 = 0010 1001. 101

     

    0010 1001.101 -> 6자리 이동 01.00 0001 101

    1.01001101 * 2^5    -> 여기서 0100 1101 은 가수부 , 5는 지수부 125+5 1000 0100 부호는 양수 이므로 0

     

    0100 0010 0010 0110 1000

      4      2     2      6      8

    이므로 42 26 80 인데 little endian 방식이므로 뒤집어서 80 26 42 가 나온다.

     

    하지만 여기서 소수점 밑의 자리가 625가 아니라면 굉장히 많아지므로 2진수로 표현하기 어렵다. 여기서 오차가 생긴다. 소수점이 있는 십진수는 소수점으로 정확하게 표현이 안된다. 

    대부분 float을 설명할 때는 4byte로 설명한다. 

     

     

     

    문자형

     char 유니코드 2byte

     

    boolean

    true false

     

     

    enum 사용자 자료형

    //프롤로그 시작 -----
    using System;
    using System.Threading;
    
    namespace ConsoleApp1
    //프롤로그 끝 -------
    {
        class Program //클래스
        {
            enum Week
            {
                Mon=100,
                Tue,
                Wed,
                Thu=200,
                Fri,
                Sat,
                Sun
            }
            static void Main(string[] args) // Main메소드 & 엔트리 포인트
            {// Main 메소드의 인자/인수/매개변수 : 1개, 이름 : args
                Week Gooday;
                Week Today;
    
                Gooday = Week.Fri;
                Today = Week.Thu;
                Console.WriteLine("Gooday = {0}", Gooday);
                Console.WriteLine("Today = {0}", Today);
        
                Console.WriteLine("Gooday Index = {0}", (int)Gooday);
                Console.WriteLine("Today Index = {0}", (int)Today);
    
                Console.WriteLine("Index = {0}", (int)Week.Mon);
                Console.WriteLine("Index = {0}", (int)Week.Tue);
                Console.WriteLine("Index = {0}", (int)Week.Wed);
                Console.WriteLine("Index = {0}", (int)Week.Thu);
                Console.WriteLine("Index = {0}", (int)Week.Fri);
                Console.WriteLine("Index = {0}", (int)Week.Sat);
                Console.WriteLine("Index = {0}", (int)Week.Sun);
            }
        }
    }
    

     

    구조체

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApp2
    {
        struct Book :
        {
            static Book()
            {
                Console.WriteLine("집가기 6분전!");
            }
            public void test()
            {
                Console.WriteLine("집가기 8분전");
            }
            public string Name;
            public int Price;
        }
        class Program
        {
            static void Main(string[] args)
            {
                Book ibook ;
                ibook.Name = "test";
                ibook.Price = 100;
                ibook.test();
    
                Book abook;
                
              
            }
        }
    }
    

     

    'C#' 카테고리의 다른 글

    C# 윈폼 DateTimePicker와 Tab 컨트롤을 사용한 알람시계  (0) 2020.08.20
    C# 윈폼 타이머를 이용한 스탑워치  (0) 2020.08.20
    C# DB연동  (0) 2020.06.18
    C# 윈폼 Chart 컨트롤  (0) 2020.06.18
    C# 고급 컨트롤  (0) 2020.06.17
Designed by Tistory.