inflearn logo
강의

講義

知識共有

Do it!Javaプログラミング入門

Javaのいくつかの演算子(2)

비트 연산자 질문입니다.

371

dbtngus922360

投稿した質問数 3

1

int num1 = 2;

int num2 = 10;

System.out.println(num1 & num2); //2

System.out.println(num1 | num2); //10

System.out.println(num1 ^ num2); //8

System.out.println(~num1); //3

 

이렇게 4가지 답이 나오는게 이해가 안갑니다 ㅠㅠ

 

java

回答 1

0

kavindutk

안녕하세요!

비트 연산자에 대해 정확이 이해하고 싶다면 먼저 숫자 체계 (Number Systen) 를 잘 공부하세요.

2진수 ,8진수, 16진수,Second complement 등을 알고 있으면 너무 유용합니다.

 

  1. & (AND) 연산자는. 두 비트가 모두 1일 때만 1을 반환합니다.

    0 & 0 => 0을 반환

    0 & 1 => 0을 반환

    1 & 0 => 0을 반환

    1 & 1 => 1을 반환

     

    System.out.println(num1 & num2); //2

    00000010 <= num1

    00001010 <= num2

    00000010 <= 답변

     

  2. | (OR) 연산자는 두 개의 비트 중 하나라도 1이면 1로 반환합니다.

    0 | 0 => 0을 반환

    0 | 1 => 1을 반환

    1 | 0 => 1을 반환

    1 | 1 => 1을 반환

    System.out.println(num1 | num2); //10

    00000010 <= num1

    00001010 <= num2

    00001010 <= 답변

     

  3. ^ (XOR) 연산자는 두 개의 비트가 서로 다른 경우에 1을 반환합니다

    0 ^ 0 => 0을 반환

    0 ^ 1 => 1을 반환

    1 ^ 0 => 1을 반환

    1 ^ 1 => 0을 반환

    System.out.println(num1 ^ num2); //8

    00000010 <= num1

    00001010 <= num2

    00001000 <= 답변

     

  4. ~(NOT) 연산자는 0 이면 1로, 1 이면 0로 바꿔줍니다. 이거는 아주 간단하네용 ㅎㅎ

    ~0 => 1을 반환

    ~1 => 0을 반환

    System.out.println(~num1); // -3

    00000010 <= num1

    11111101

     

    8 비트로 이렇게 표현 하면 num1 의 값을 반전시킨 것을 볼 수 있습니다.

    그리고 MSB (Most Significant Bit)도 1로 반환되었는데. 그래서 이렇게 음수 값을 나옵니다.

     

이클립스 활성화가 안되는부분이있어요ㅜㅜ

0

432

1

책에 자료실

0

497

1

StudentID

0

558

1

인터페이스와 가상 메서드

0

356

1

11분쯤 price, int price 질문

0

352

1

For문 (중첩된 반복문) 구구단 문의 드립니다.

0

785

1

반복문 별 출력 연습문제

0

393

1

Scheduler scheduler = null 굳이 하는 이유가 있나요

1

335

0

Class간의 연결

1

294

1

선생님 스킬

0

396

1

초기화 에러!!!

0

285

1

선생님 영상에서 목소리가 좀 작은 것 같습니다 ㅠㅠ

2

302

0

출력

2

232

0

Main 함수 저번 강의 거가 나와요

0

315

1

결과값오류

1

225

0

printIn 함수 질문

0

451

1

24분 57초에 질문 있습니다!!

0

362

1

1분36초쯤에 말씀하시는 자바닥??그거 보라고 하셨는데 자바닥이 뭐죠..?

0

249

1

메서드와 생성자

0

396

2

참조형 데이터 타입은 클래스 이름과 같아야 하나요?

0

286

1

반환값은 정수 밖에 안되나요?

0

272

1

9분33초 설명!!부탁 드립니다!

0

299

1

48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?

0

297

1

for (byte b : bs) 가 뭐죠..

0

502

1