반응형
1. 변수
using System;
namespace CSharp {
class Program{
// Main function
static void Main(string[] args){
int hp = 100;
// byte(1 byte, 0~255), short(2 byte, -3만x~3만x), int(4 byte, -21억~21억), long(8 byte)
// sbyte(1 byte, -128~127), ushort(2 byte, 0~6만x), uint(4 byte, 0~43억x), ulong
// 10진수(0-9로 표기)
// 00 01 02 03 04 05 06 07 08 09 > 10 11 12...
// 2진수(0,1로 표기)
// 0b00 0b01[1] > 0b10[2] 0b11 > 0b100[4] ...
// 0b11111111[255]
// 16진수(0-15 == 0-9,a,b,c,d,f로 표기)
// 0x00 0x01 0x02 0x03 ... 0x0f[15] > 0x10[16]
// 2진수 <-> 16진수 변환(2진수 4자리씩 잘라서 계산)
// 0b10001111 = 0x8F
// 2진수 1000 = 16진수 8
// 2진수 1111 = 16진수 F
// 2진수 음수 표현 = 2의 보수를 사용
// 00000000 제일 왼쪽자리인 7번째 자리를 부호 자리로 함
// 0b10000000[-128], 0b11111111[-1] ,0b01111111[127]
// -------------------------------------------------------------------------------------
bool b = false;
// bool(1 byte, true or false)
// 소수
float f = 3.14f; // 4byte
double d = 5.012; // 8byte
// 하나의 문자
char c = '가'; // 2byte
c = 's';
// 문자열
string str = "Hello World!";
Console.WriteLine(str);
// -------------------------------------------------------------------------------------
// 형식 변환
int a = 0xFFFFFFFF;
short b = (short)a; // 0xFFFF값인 -1로 저장됨. 바이트가 큰 값을 작은 값에 넣는 경우 명시적 변환(캐스팅)을 사용해야함. 반대 경우엔 필요없음.
// 바이트 크기는 값지만 부호가 다른 경우
byte c = 255; // 255
sbyte sb = (sbyte)c; // -1 다른값이 저장됨 underflow, overflow
// 소수 형식 변환
float f = 3.1414f;
double d = f; // 인접한 다른 값으로 저장함. 3.1414000087...
// -------------------------------------------------------------------------------------
// 산술 연산자 +(더하기),-(빼기),*(곱하기),/(나누기),%(나머지 값)
int hp = 0;
hp++; // hp = hp+1; hp+=1;
hp--; // hp = hp-1; hp-=1;
++hp; // hp = hp+1;
--hp; // hp = hp-1;
hp = 100;
Console.WriteLine(hp++); // 100
hp = 100;
COnsole.WriteLine(++hp); // 101
// 비교 연산자
// <,<=,>,>=,==,!=
bool b = hp<100;
// 논리 연산자
// &&(and),||(or),!(not)
// -------------------------------------------------------------------------------------
// 비트 연산
// << 왼쪽으로 shift. 2진수
int num = 1;
num = num<<3; // 8
// >> 오른쪽으로 shift. 2진수
num = 8;
num = num>>1; // 4. 부호 자리의 비트는 고정하고 옮김.
// & and 같은 자리 비트를 and 연산함
// 0b00010110
// 0b00101101
// ----------
// 0b00000100 2개의 숫자를 &(and)연산 한 결과
// | or 같은 자리 비트를 or 연산 함
// 0b00010110
// 0b00101101
// ----------
// 0b00111111 2개 숫자를 |(or)연산 한 결과
// ^ xor 배타적 논리 합. 같은자리 값이 다르면 1, 같으면 0
// 0b01011100
// 0b00101101
// ----------
// 0b01110001 2개 숫자를 ^(xor)연산 한 결과
// xor은 암호화에서 자주 사용.
int id = 123;
int key = 401;
int a = id^key;
int b = a^key; // 123. id값이 나옴
// ~ not 0은 1로, 1은 0으로 바꿔서 계산
// 0b00101101을 not 처리하면 0b11010010
// -------------------------------------------------------------------------------------
// 연산자 우선순위
// 1. ++, --
// 2. *,/,%
// 3. +,-
// 4. <<,>>
// 5. <,>
// 6. ==,!=
// 7. &
// 8. ^
// 9. | ...
// 괄호()를 넣어서 우선순위를 높게 만들기.
// -------------------------------------------------------------------------------------
// var: 컴파일러가 알아서 타입을 정해줌.
var num = 3;
var st = "Hello world,.";
Console.WriteLine("Hello World! {0}", hp);
}
}
}
2. 문자열
using System;
using System.Collections;
namespace CSharp {
class Program{
// Main 함수
static void Main(string[] args) {
string name = "Harry Porter";
//1.찾기
bool found = name.Contains("Harry");
//문자를 찾아서 index 반환. 없는 경우 -1
int idx = name.IndexOf('P');
//2. 추가
name += " Junior";
//소문자/대문자로 변형
string lowerCaseName = name.ToLower();
string upperCaseName = name.ToUpper();
//특정 문자를 변경 (r을 l로 변경)
string newName = name.Replace('r','l');
//3.분할 Split()
string subStringName = name.Substring(5);
}
}
}
반응형
':SERVER > C#(C Sharp)' 카테고리의 다른 글
클래스, 생성자, static (0) | 2022.09.16 |
---|---|
스택,힙 메모리, 클래스 (0) | 2022.09.16 |
함수, ref, out (0) | 2022.09.15 |
반복문 (0) | 2022.09.14 |
분기문(if문, switch문, 삼항연산자) (0) | 2022.09.14 |