제임스딘딘의
Tech & Life

자바 4

[Java] 비트 연산자 / 시프트 연산자

[Java] 비트 연산자 / 시프트 연산자 자바언어에는 C/C++ 와 동일하게 비트연산자들인 '&', '|', '^', '~' 와 시프트연산자인 '' 가 있습니다.그러나 자바에만 있는 연산자가 있는데요.바로 '>>>' 라는 연산자가 추가적으로 존재합니다. 순서대로 정리해 보도록 하겠습니다. 비트연산자컴퓨터 내부의 데이터를 비트 단위로 비교하거나 조작할 때 사용한다. 1. 논리곱 (and) &각 비트를 비교하여 양쪽 모두 1이면 1, 아니면 0을 반환함. ex) a = 110, b= 220a = 0 1 1 0 1 1 1 0b = 1 1 0 1 1 1 0 0 a&b = 0 1 0 0 1 1 0 0 2. 논리합 (or) |각 비트를 비교하여 어느 한쪽이 1 이면 1, 그렇지 않으면 0을 반환함. ex) a =..

[Java/Tip] 자바에서 unsigned byte 다루기.

자바의 Primitive Data Type 들 중에는 unsigned 데이터 타입이 존재하지 않습니다. unsigned를 특별히 사용할 일이 없을때는 의식하지 못하고 있었는데, 자바에서(정확히는 안드로이드에서 사용할 목적으로) 음성을 G.711 인코딩/디코딩 하기 위한 코덱을 구현 하던 중 깨닫게 되었습니다. byte 타입을 unsigned 로 0~255 을 사용하고 싶었지만, 자바에서는 unsigned 키워드 자체가 존재하지 않아 byte 타입은 -128~127 의 값을 갖게 되어 있더군요. 즉 2's complement 의 값입니다. 하지만 제가 필요한 것은 0~255 의 범위값이었습니다. 정확히는, C#에서 byte 타입으로 보낸 0~255의 값 (이진 값으로는 0000 0000 ~ 1111 111..

[Java] 정규표현식 표현 방법

java.util.regex 패키지에 있는 Match 클래스와 Pattern 클래스를 사용하여 문자열을 정규표현식으로 검증할 수 있다. boolean bln = Pattern.matches("^[a-zA-Z0-9]*$", this.input); 정규표현식은 다음과 같은 문법으로 되어 있다. ^ : 문자열의 시작을 나타냄. $ : 문자열의 종료를 나타냄. \ . : 임의의 한 문자를 나타냄. (문자의 종류는 가리지 않는다) | : or를 나타냄. ? : 앞 문자가 없거나 하나있음을 나타냄. + : 앞 문자가 하나 이상임을 나타냄. * : 앞 문자가 없을 수도 무한정 많을 수도 있음을 나타냄. 만약, .* 으로 정규식이 시작한다면 시작하는 문자열과 같은 문자열이 뒤에 없거나 많을 수도 있는 경우에만 일치를 ..

부분문자열을 얻는 방법 - Java와 SQL

JAVA의 String 메소드중 하나인 Substring 은 부분문자열을 얻을때 사용한다. Substring(int beginIndex, int endIndex) 의 형태를 가진다. beginIndex 부터 endIndex 까지를 부분문자열로 취하겠다는 뜻이다. (endIndex의 문자는 제외가 된다!!) 예) String str = "19000101-1234567" str.substring(10, 17) 하면 1234567 을 부분문자열로 반환한다. (10부터 16까지 7자리를 읽어온다) SQL에서는 부분문자열을 얻는 substr 라는게 있다. 형태는 substr(string S,int N1,int N2) 이다. 뭐냐하면 문자열 S를 N1 번째 문자부터 시작해서 N2 개 만큼 부분문자열로 취한다는 것이..

1