'연산자'에 해당되는 글 3건

Programming/.NET

비트 단위의 논리 연산을 수행합니다.

 

int i = 10;

int bit_and = i & 3;
int bit_or = i | 3;
int bit_xor = i ^ 3;
int bit_not = ~i;

Console.WriteLine("Result : {0} | {1}", bit_xor, bit_not);

 

& 는 and 연산으로서 같은 값인것만 1로 처리합니다. 그래서 10의 값이 1010과 3의 값인 0011을 연산하면

 

1010
0011
----
0010

 

이 되어 결과는 3이 됩니다.

 

| 는 or 연산입니다. 따라서 둘중 어느 하나라도 1이 있으면 결과는 1이 됩니다.

 

1010
0011
----
1011

 

^ 는 Xor 연산으로 둘의 값이 1이든 0이든 서로 틀려야만 1이 됩니다.

 

1010
0011
----
1001

 

마지막으로 ~는 보수입니다. 피연산자의 모든 값을 반대로 뒤집습니다.

 

1010
----
0101

 

다만 이 경우 부호를 나타내는 최상위 비트도 반대로 처리하기 때문에 결과는 -값이 됩니다.

'Programming > .NET' 카테고리의 다른 글

[ASP.NET MVC] Razor  (0) 2019.01.08
[ASP.NET MVC] URL 다루기  (0) 2018.12.18
[C#] 비트(bit) 연산자  (0) 2018.11.20
[ASP.NET MVC] 액션 메서드(Action Method)  (0) 2018.11.13
[C#] Thread  (0) 2018.11.06
[C#] MemoryStream / StreamWriter / StreamReader / BinaryWriter / BinaryReader  (0) 2018.10.31
0 0
Programming/.NET

null 조건을 처리할 수 있는 연산자로 ?? 가 있습니다.

 

예를 들어 아래와 같은 코드는

 

string s = null;

if (s == null)
    Console.WriteLine("NULL");

 

다음과 같이 수정될 수 있습니다.

 

string s = null;
Console.WriteLine(s ?? "NULL");

'Programming > .NET' 카테고리의 다른 글

[C#] String  (0) 2017.08.22
[C#] 확장 메서드(Extension Method) - 2  (0) 2017.08.16
[C#] ?? 연산자  (0) 2017.08.10
[C#] 형변환(캐스팅 - Casting)  (0) 2017.08.01
[C#] 이벤트(event)  (0) 2017.07.26
[C#] Directory 와 DirectoryInfo 클래스  (0) 2017.07.19
0 0
Programming/C C++
 산술연산자

 +  덧셈
 -  뺄셈
 *  곱셈
 /  나눗셈
 %  나머지

예) int result = 3 + 4;

 증감연산자

 ++  1증가
 --  1감소

피연산자가 하나만 있는 단항연산자로 ++a; 처럼 사용되는 경우 선증가, a++; 처럼 사용되는 경우 후증가 연산을 수행합니다.

 쉬프트 연산자

 <<  왼쪽으로 비트 이동
 >>  오른쪽으로 비트 이동
int i = 10;
int j = i << 2;
위 예제의 경우 i변수의 2진수에서 왼쪽으로 2비트 만큼 이동한 값을 j에 대입합니다. 변수 j는 int형으로서 4byte인 32bit이고 이 비트를 왼쪽으로 2비트 만큼 밀고난 후 밀려난 부분을 0으로 채운 값(40)이 됩니다.

다만 오른쪽 쉬프트 연산자인 경우에는 피연산자가 음수이면 밀려난 자리에 0이 아닌 1의 값을 채우게 됩니다.

 논리연산자

 &&  논리곱(AND)
 ||  논리합(OR)

논리곱은 피연산자 모두 참(true)이여야 참(true)값을 반환하며 논리합은 피연산자중 하나만 참이여도 참의 값을 반환합니다.

 비트연산자

 &  논리곱(AND)
 |  논리합(OR)
 ^  베타적논리합(XOR)

피연산자의 비트값을 대상으로 연산을 수행하는 연산자입니다. 예를 들어 정수 3의 비트는 0011이고 정수 2의 비트는 0010 이므로 이 두개의 비트를 & 연산하게 되면 다음과 같은 결과값을 얻게 됩니다.

0011
0010
---- &
0010 -> 결과

참고로 ^ 연산자는 피연산자중 단 하나만 참(true)의 값을 가져야만 참이 되는 연산입니다.

0011
0010
---- ^
0001

 관계연산자

 <  오른쪽이 왼쪽보다 크다.  <=  오른쪽이 왼쪽보다 크거나 같다.
 >  왼쪽이 오른쪽 보다 크다.  >=  왼쪽이 오른쪽보다 크거나 같다.
 ==  같다.  !=  다른다.

연산의 결과가 0이면 false, 1이면 true

 대입연산자

 =  오른쪽 값을 왼쪽에 대입  +=  오른쪽 값을 왼쪽에 더함
 -=  오른쪽 값을 왼쪽값에 감산  *=  오른쪽 값을 왼쪽값에 곱함
 /=  오른쪽 값을 왼쪽값에 나눔  %=  오른쪽 값을 나눈 나머지를 왼쪽에 대입
 <<=  왼쪽값을 오른쪽 값만큼 왼쪽 쉬프트 수행  >>=  왼쪽값을 오른쪽 값만큼 오른쪽 쉬프트 수행
 &=  오른쪽 값의 비트 논리곱 결과를 왼쪽에 대입  ^=  오른쪽 값의 비트 베타적 논리합 결과를 왼쪽에 대입
 !=  오른쪽 값의 비트 논리합 결과를 왼쪽에 대입    

예)
int a = 0;
a += 1;

'Programming > C C++' 카테고리의 다른 글

[Visual C++] 구조체  (0) 2012.07.05
[Visual C++] 함수  (0) 2012.07.04
[Visual C++] 연산자  (0) 2012.07.03
[Visual C++] 흐름제어  (0) 2012.07.02
[Visual C++] 형변환  (0) 2012.06.29
[Visual C++] 나열형(enum)  (0) 2012.06.28
0 0
1
블로그 이미지

클리엘