인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

한울님의 프로필 이미지
한울

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

비트 연산과 비트 플래그

비트연산 시 unsigned...

작성

·

240

0

부호를 없애야 >>를 해도 부호비트가 따라오지 않는다고 하셨는데

부호가 있는 경우(ex - 1100 0010)에 >>1을  실헝해본 결과 2로 나누어지는 것에 큰 이상은 없는 것 같았습니다...다른 이유가 있을까요?

 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

>> 을 쓰는 경우는 나눗셈의 상황보다는,
BitFlag을 사용할 때 많이 사용합니다.
ex) 게임ID 같은 것들을 uint64 변수로 만들어서 관리하는 경우가 많습니다.

모든 숫자들을 >> 우측으로 밀고 싶은데, 뜬금없이 앞의 숫자들이 1로 채워지면 곤란하겠죠.

한울님의 프로필 이미지
한울
질문자

한 가지 더 궁금한 것이 있는데

전역변수와 지역변수를 선언하는 코드를 어셈블리어로 보면

전역변수 쪽은 아무것도 없고

지역변수 쪽만 mov ...로 이렇게 표시되어있는데

이유가 무엇인가요?

Rookiss님의 프로필 이미지
Rookiss
지식공유자

지역변수는 스택 영역에 있고, 스택은 ebp 상대 주소로 접근하니 mov가 필요하고
전역변수는 그냥 고정된 메모리 주소에 박히니 필요가 없습니다.

메모리 구조에 대해 더 깊이 있는 이해를 위해
이것저것 구글에서 검색해보시기 바랍니다.

한울님의 프로필 이미지
한울
질문자

감사합니다!

한울님의 프로필 이미지
한울

작성한 질문수

질문하기