728x90
반응형
SMALL
연산자
연산자종류
총 6개 종류의 연산자가있다.
기존의 연산자와 유사하다. 예를들어 대입 연산자는 a = a + 1 를 a+=1 로 함축해서 대입시키는 것이다.
이 6가지에 대해 설명하겠다.
1. 산술연산자
+ | 더하기 |
- | 빼기 |
* | 곲하기 |
/ | 나누기 |
% | 나머지 |
** | 지수연산 |
예제
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.10;
contract Plus {
function plus() public pure returns (uint) {
uint a = 1;
uint b = 2;
return a + b * 2;
}
function rest() public pure returns (uint) {
return 4 % 3;
}
}
산술연산을 통해 uint값에 넣어주는것이다.
2. 비교연산자
> | 크다 |
>= | 크거나 같다 |
< | 작다 |
<= | 작거나 같다 |
== | 같다 |
!= | 같지 않다 |
결과값은 ture / false 가 나올 것이다.
예제
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.10;
contract Comparison {
function com() public pure returns(bool) {
uint a = 1;
uint b = 2;
return a >= b;
}
}
리턴값은 불형으로 나오고 해당 값이 나온다.
3. 대입연산자
정의 : 왼쪽의 값(Left Value)를 포함하는 연산자
코드를 간결하게 사용할 수 있음
a = a + 1 | -> | a += 1 |
a = a - 1 | -> | a -= 1 |
a = a * 1 | -> | a *= 1 |
a = a / 1 | -> | a /= 1 |
예제
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.10;
contract Substitution {
function subst() public pure returns(uint) {
uint a =10;
uint b =11;
a += b;
return a;
}
}
4. 비트연산자
& | AND (둘다참) |
| | OR (둘중 하나만 참이면 참) |
^ | XOR (계산하려는 식이 서로 다른 값을 가지고 있을때 1, 같을때 0) |
~ | NOT (반대) |
예제
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.10;
contract Bitwise {
function bit() public pure returns (uint) {
uint a = 1;
uint b = 2;
return a & b;
}
}
1과 2의 비트간의 연산이다.
a를 비트로는 01 이다.
b를 비트로는 10 이다. 이걸 and연산으로 해보면 0과 0이 되어 결과같은 0이 된다.
5. 시프트 연산자
<< | 왼쪽 시프트 |
>> | 오른쪽 시프트 |
예제
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.10;
contract Shift {
function shift() public pure returns (uint) {
uint a =1;
return a << 2;
}
}
a=1이라고 선언을 했는데 이것은 2진수로 보면, 비트로 보면
0 1
이다.
이것을 왼쪽으로 2번가라고 했으니
1 0 0 이 된다.
그럼 1 0 0 의 10진수의 값은 "4" 이니 리턴값은 4가 나온다.
6. 증감연산자
++ | 증가 |
-- | 감소 |
자바에서 for (int i = 0 ; i < 2; i ++){} 할때 그 증감연산자이다. 값을 하나씩 늘려가는!
예제
//SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.10;
contract Variation {
function vari()public pure returns(uint){
uint a = 1;
a++;
return a;
}
}
상수
constant 키워드를 사용한다.
728x90
반응형
LIST
'전공공부 > 블록체인공학' 카테고리의 다른 글
Solidity 함수의 타입제어 : view와 pure (0) | 2021.11.11 |
---|---|
Solidity 함수의 입력 매개변수와 반환값 (0) | 2021.11.11 |
Solidity 데이터타입과 연산자(2) (0) | 2021.11.05 |
Solidity 데이터타입과 연산자 (0) | 2021.11.04 |
Solidity개발(2) (0) | 2021.10.31 |
댓글