using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
* C# 공부
*/
namespace CSharp
{
class Program
{
//주석을 달 수 있음
/* 주석은 이것도 됨 이것은 주석을 한번에 할 게 많을 때 주로 씀*/
static int Factorial(int n)
{
if (n <= 1)
return 1;
return n * Factorial(n - 1);
}
static void Main(string[] args)
{
//데이터 + 로직 프로그램의 기본
//변수 : 변하는 수 , 데이터를 담을 그릇
int hp = 0;
hp = 100;
short level = 100;
//int형 hp라는 변수에 0을 담았음.=>;이것은 문장이 끝났다라는 의미
// byte(1바이트 0 ~ 255), short(2바이트 -3만 ~ 3만), int(4바이트 -21억 ~ 21억), long(8바이트)
// sbyte(1바이트 -128 ~ 127), ushort(0 ~ 6만), uint(0 ~ 43억), ulong(8바이트) //s는 음수까지 표현한다는 의미
// 10진수
// 00 01 02 03 04 05 06 07 08 09
// 10
// 2진수
// 0 1
// 0b00 0b01 0b10 0b11 0b100 0b101 0b110 0b111 0b1000 0b1001 0b1010
// 0b10001111 = 0x8F 2진수에서 16진수로 변환이 쉽다.
// 16진수
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
// 0x00 0x01 0x02 ...0x0F 0x10
//bool형 타입
//bool은 1바이트인가?? => 컴퓨터가 연산을 할 때 1비트보다는 1바이트가 더 편해서
bool b;//참/거짓을 나타냄
b = true;
b = false;
//소수
//float 4바이트
float f;
f = 3.14f;
//double 8바이트 float보다 더 소수를 표현할 때 정밀도가 뛰어남.
double d = 3.14;
//char 2바이트
char c = 'a';
//char형을 일자로 쭉 이은 자료형이라 볼 수 있다.
string str = "hellow World";
//형변환
//1. 바구니 크기가 다른경우
int a = 0x0FFFFFFF;
short b = (short)a;//캐스팅 강제로 데이터가 손실을 감안해서라도 바꾸겠다.
//2. 바구니 크기는 같지만, 부호가 다를 경우
byte c = 255;
sbyte sb = (sbyte)c;
//3. 소수
float f = 3.1414f;
double d = f;
//데이터 연산
//+ - * / %
int mp = 100;
mp = 100 + 1 * 2;
mp = 100 - 5;
mp = 100 / 2;
mp = 100 % 2;
//증감 연산자 ++, --
//전위 후위 먼저 하냐 안하냐의 차이
hp++;
++hp;
//비교연산자
//<, >, =<, =>, !=, == 결과 값 true, false로 반환
bool b = hp < 100;
bool tr = hp == 100;
//논리연산자 &&, ||, !
int Level = 50;
bool IsAlive = (hp > 0);
bool IsHighLevel = (level >= 40);
int ret = Factorial(5);
if(IsAlive && IsHighLevel)
{
Console.WriteLine("true");
}
//비트연산
//<<, >>, &(and), ^(xor), |(or), ~(not)
int num = 1;
int num2 = 2;
num = num << 3;
num2 = num >> 1;
Console.WriteLine("Hello Number !{0}", hp);
Console.WriteLine(ret);
}
}
}
데이터 다루기 마무리