inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Làm đi! Giới thiệu lập trình Java cùng cô giáo Eunjong

Các toán tử khác nhau trong Java (2)

비트 연산자 질문입니다.

367

dbtngus922360

3 câu hỏi đã được viết

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

Câu trả lời 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

430

1

책에 자료실

0

495

1

StudentID

0

554

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

247

1

메서드와 생성자

0

393

2

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

0

282

1

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

0

271

1

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

0

297

1

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

0

294

1

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

0

501

1