inflearn logo
강의

Course

Instructor

Do it! Introduction to Java Programming with Eun Jong

Various operators in Java (2)

비트 연산자 질문입니다.

367

dbtngus922360

3 asked

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

Answer 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

429

1

책에 자료실

0

495

1

StudentID

0

553

1

인터페이스와 가상 메서드

0

354

1

11분쯤 price, int price 질문

0

350

1

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

0

782

1

반복문 별 출력 연습문제

0

390

1

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

1

333

0

Class간의 연결

1

292

1

선생님 스킬

0

392

1

초기화 에러!!!

0

282

1

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

2

300

0

출력

2

230

0

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

0

312

1

결과값오류

1

222

0

printIn 함수 질문

0

449

1

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

0

359

1

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

0

246

1

메서드와 생성자

0

393

2

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

0

282

1

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

0

270

1

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

0

296

1

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

0

294

1

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

0

501

1