티스토리 뷰
Flag를 사용하여서, 값을 한꺼번에 합쳐서 보낼수도 있고, 조작하여서 사용할 경우가 존재하게 된다.
비트 연산에 대한 생각을 하게 되면 쉽게 해결이 되지만. 막상 또 하려고 하면 정리가 안된다.
그래서 정리를 하여둠.
public class FlagTest { private static final int NONE = 0; private static final int ONE = 1; private static final int TWO = ONE << 1; private static final int THREE = ONE << 2; private static final int ALL = ONE | TWO | THREE; public static void main(String[] args) { System.out.println("NONE = " + NONE); System.out.println("ONE = " + ONE); System.out.println("TWO = " + TWO); System.out.println("THREE = " + THREE); // Flag의 합침값 int flags = ONE | THREE; System.out.println("ONE | THREE = " + flags); // 특정 Flag 값을 확인 System.out.println("THREE = " + ((flags & THREE) != 0)); // 특정 Flag값을 추가 System.out.println("TWO = " + ((flags & TWO) != 0)); flags |= TWO; System.out.println("TWO = " + ((flags & TWO) != 0)); // 특정 Flag값을 제거 flags &= ~THREE; System.out.println("THREE = " + ((flags & THREE) != 0)); // 특정 Flag값을 반전 (제거랑 비슷함) flags ^= TWO; System.out.println("TWO = " + ((flags & TWO) != 0)); // Flag 모두 제거 flags = NONE; // 1번방법 System.out.println("flags = " + flags); flags |= TWO; System.out.println("flags = " + flags); flags &= ~flags; // 2번방법 System.out.println("flags = " + flags); // 모든 플래그 적용 flags = ALL; System.out.println("ONE = " + ((flags & ONE) != 0)); System.out.println("TWO = " + ((flags & TWO) != 0)); System.out.println("THREE = " + ((flags & THREE) != 0)); // 몇개빼고 적용 flags = ALL ^ ONE; System.out.println("ONE = " + ((flags & ONE) != 0)); System.out.println("TWO = " + ((flags & TWO) != 0)); System.out.println("THREE = " + ((flags & THREE) != 0)); } }
'Language > Java' 카테고리의 다른 글
[Java]정규표현식 (0) | 2015.01.06 |
---|---|
[Java]Deep copy, Shallow copy (0) | 2014.09.26 |
Java의 접근 제한자 (0) | 2014.08.13 |
System.currentTimeMillis()와 System.nanoTime() (0) | 2014.03.10 |
raplace와 replaceAll의 차이 (0) | 2014.03.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- git
- cocoapods
- Kotlin
- CentOS
- Java
- intellij
- Linux
- github
- go
- Codable
- enum
- tomcat
- docker
- Python
- SWIFT
- MySQL
- war
- ubuntu
- windows10
- php
- Windows
- rxswift
- centos8
- nodejs
- Xcode
- ios
- Spring
- golang
- Gradle
- android
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함