큐범
Just do debug
큐범
전체 방문자
오늘
어제
  • 전체보기 (128)
    • 회고 (4)
    • JAVA (16)
      • JAVA 기초 (18)
      • JAVA Algorithm, Datastruct (13)
    • Spring (11)
    • Micro Service Architecture (3)
    • JPA (6)
    • gRPC (4)
    • Network (8)
    • Process (7)
    • Cloud (4)
    • Python (10)
    • Web(vue) (2)
    • UMC (1)
    • DB (9)
    • CS (1)
    • Clean Code (1)
    • TDD (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
큐범

Just do debug

JAVA/JAVA 기초

[JAVA 기초] 비트 전환 연산자

2021. 7. 16. 09:31

비트 전환 연산자 ~

비트 전환 연산자는 2진수로 표현했을 때, 0은 1 1은 0으로 표현한다.

x ~x
1 0
0 1
public static void main(String[] args) {
		byte p = 10;
		byte n = -10;
		
		System.out.printf("p = %d \t%s%n", p, toBinaryString(p));
		System.out.printf("~p = %d \t%s%n", ~p, toBinaryString(~p));
		System.out.printf("~p+1 = %d \t%s%n", ~p+1, toBinaryString(~p+1));
		System.out.printf("~~p = %d \t%s%n", ~p+1, toBinaryString(~~p));
		System.out.println();
		System.out.printf(" n = %d%n", n);
		System.out.printf("~(n-1)=%d%n", ~(n-1));
	}

	private static String toBinaryString(int x) {
		String zero = "00000000000000000000000000000000";
		String temp = zero + Integer.toBinaryString(x);
		return temp.substring(temp.length()-32);
	}
    //결과
p = 10 	    00000000000000000000000000001010
~p = -11 	11111111111111111111111111110101
~p+1 = -10 	11111111111111111111111111110110
~~p = -10 	00000000000000000000000000001010

 n = -10
~(n-1)=10

p에 대한 음의 정수를 얻으려면 ~p+1을 하면 얻을 수 있고, 음의 정수를 얻기 위해서는 ~(n-1)을 계산하면 된다.

 

출처 : JAVA의 정석 - (남궁성지음)

    'JAVA/JAVA 기초' 카테고리의 다른 글
    • [JAVA 기초] 조건, 대입 연산자
    • [JAVA 기초] 쉬프트 연산자(shift operator)
    • [JAVA 기초] 논리 부정 연산자(true, false)
    • [JAVA 기초] 논리연산자(&&, ||, !)
    큐범
    큐범

    티스토리툴바