inflearn logo
강의

Course

Instructor

[10 minutes a day | C++] Introduction to C++ programming that anyone can easily learn

C++ Arithmetic Operators and auto

<<, >> 비트 연산자에 대한 설명이 맞나요?

447

seonghwa Park

1 asked

0

2분 40초 쯤 나오는 >>, << 연산자에 대해서

"두 개의 피연산자가 모두 정수이변 결과값은 '몫' 입니다."라고 설명되었는데, 해당 연산이 비트연산 시프트 연산과 같다면 몫이 나올 수 없지 않나요?

 

예를 들어서

int a = 4; // 100

int b = 1; // 1

int c = a >> b

cout << c << endl;

결과값은 2가 나오게 되니까 몫이라고 설명되는 부분이 이해가 안됩니다.

 

c++

Answer 2

0

ㅋㅌㅊㅋㅌㅊㅋㅌㅊ

위의 / 연산자를 보충설명한 것 같습니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

부르신 seonghwaPark님, 답변 드리겠습니다.

비트 연산자 >><<는 비트를 우측 혹은 좌측으로 이동시키는 연산자입니다. 따라서 ‘몫’이라는 표현은 정확하지 않을 수 있습니다. 비트 시프트 연산의 경우, a >> b 연산은 실제로 a의 비트를 오른쪽으로 b만큼 이동시키므로, a를 2의 b제곱으로 나눈 것과 비슷한 결과를 얻게 됩니다. 그러나 이는 차이가 있는 수학적 몫 연산과는 다를 수 있습니다.

여러분의 예에서 int a = 4;, int b = 1; 일 때, int c = a >> b; 의 결과값은 a의 비트를 오른쪽으로 1 비트 이동시키므로 2가 나오게 되며, 이는 4를 2로 나눈 결과와 같지만, 엄밀히 표현할 때 ‘몫’이라고 부르기보다는 ‘오른쪽으로 비트를 한 칸 이동한 결과값’이라고 설명하는 것이 적합합니다.

혹시나 질문이 더 있으시면, 언제든지 추가 질문해주시기 바랍니다. 공부하는데 도움이 되셨길 바랍니다!

switch 구문과 break continue 구문 강의 질문드립니다

0

54

1

opreator*

0

74

1

cin은 c언어에서의 scanf와 동일하다고 봐도 될까요?

0

139

0

질문이 있습니다.

0

107

1

temp1 선언

0

90

1

const MyStruct& 사용

0

112

0

인트형 포인터의 사이즈가 8이 나옵니다.

0

216

1

MyStruct* temp = new MyStruct; 에서 temp도 delete를 해야하나요?

0

126

1

#include <iostream> 중복

0

153

1

int sum=sumArr(arr. SIZE) 문의

0

136

1

4:04질문입니다.

0

110

1

4:39 질문입니다.

0

128

1

질문있습니다.

0

104

1

질문있습니다.

0

106

1

9:11 b에는 a이 주소값이 들어갔다고 하는데 *b의 값이 왜 a랑 같은 값이 나오나요?

0

159

1

빌드 실패 오류 질문 드립니다!

0

391

1

추상화와 클래스중 질문

0

174

1

질문사항 있습니다..동작을 안하고 있어요..

0

338

2

질문 드립니다

0

187

1

함수와 구조체 강의 음성이 이상합니다.

0

197

1

분할 컴파일 과정에서의 오류 발생

0

596

2

포인터 연산

0

384

2

비주얼 스튜디오 코드를 사용해도 되나요?

0

800

1

[정수형 자료형과 실수형 자료형] int보다 long이 더 크다고 했는데 왜 같은 값으로 나오는 건가요?

0

661

1