S_pot
210520 C#_null 조건부/병합 연산자, 시프트 연산자 본문
null 조건부 연산자
static void Main(string[] args)
{
string T = "지옥으로 키티";
Console.WriteLine($"[{T.Length}]");
T = null;
Console.WriteLine($"[{T?.Length}]"); // []: null 조건부 연산자
Console.WriteLine($"[{T ?? "널이얌1"}]"); // ??: null 병합 연산자, null값이면 [널이얌1]을 출력
T = "지옥으로 키티";
Console.WriteLine($"[{T ?? "널이얌2"}]");
}
출력값
시프트 연산자
static void Main(string[] args)
{
byte bNum = 128;
Console.WriteLine("bNum : " + bNum);
Console.WriteLine("bNum<<1 : " + (bNum << 1)); // <<: 왼쪽 시프트 연산자
// bNum이 9일때 00001001 이고 왼쪽으로 1번(bNum<<1) 밀려 00010010 이되고 즉, 18 이된다.
Console.WriteLine("bNum>>1 : " + (bNum >> 1)); // >>: 오른쪽 시프트 연산자
// bNum은 1byte임에도 불구하고 큰숫자가 나올 수 있는 이유는 bNum 자체가 커진게 아니라
// bNum의 숫자를 밀어준 것이므로 int형으로 계산되기 때문이다.
sbyte sbNum = 127;
++sbNum; // sbyte의 최대 양수를 초과하기 때문에 -128이 출력된다.
Console.WriteLine("sbNum : " + sbNum);
Console.WriteLine("sbNum<<1 : " + (sbNum << 1));
Console.WriteLine("sbNum>>1 : " + (sbNum >> 1)); // 정수일때 오른쪽으로 밀 때 음수이면 빈자리를 1로 채우고 나머지는 0이 된다.
}
출력값
'C#' 카테고리의 다른 글
210520 C#_메서드 참조 (0) | 2021.05.20 |
---|---|
210520 C#_out, ref 키워드 (0) | 2021.05.20 |
210520 C#_객체생성, 삭제 (0) | 2021.05.20 |
210520 C#_$보간방식, Format방식 (0) | 2021.05.20 |
210520 C#_왼쪽/오른쪽맞춤, 16진수표현(X), 1000단위(N), 고정소수점(F) (0) | 2021.05.20 |