본문 바로가기
# 일기장

비트연산관련 문제

by 쁘레레레레레 2023. 8. 25.

꽤 오래전에 비트연산자에 대해 배웠던 기억이 있다.

 

오늘은 비트연산에 대해 적어볼 생각이다.

 

생각해보면 예전에 비트마스크 와일드마스크 관련 공부할때 개념 자체는 알았지만, 코딩을 해본적은 없었다.

 

우선 코딩을 하기전에 보통 우리가 쓰는 변수 타입들은 최소 1바이트, 즉 8비트인데 이것들을 어떻게 데이터의 개념으로? 생각을 할까?

 

우선 연산자는 너무 기본적이지만 사실 까먹고 있던 부분인데,

 

보통 a && b는 a And B이다.

 

여기서 비트연산자는 a & b로 적는다.

 

코딩과 동떨어져 생각해볼때, &연산이 And를 뜻하는건 너무 자연스러운데 .. 흠.. 왜 까먹었었더라

 

아무튼 !

 

& , | , ^ , ~ 이정도 있고

and, or , xor, not

 

다음은 시프트연산자인데, 이거 예전에 네트워크 배울때도 아마 있었던것 같은데.. 아닌것 같기도하고 

 

A << B 이런식으로 표현을 한다.

 

예로들어, 5 << 2일때

5는 2진수로 101이고 2칸을 왼쪽으로 밀었을때, 10100이 되며 이것은 10진수로 20이 된다.

반대로 16 >> 2일때

16은 2진수로 10000이고 2칸을 오른쪽으로 밀면, 100 즉 4가 된다.

 

아, 참고로 5>>2는 1이다.

 

백준에서도 비트연산 카테고리를 풀었었고, 프로그래머스에서도 최근에 이진 변환 반복하기 등의 문제를 풀었었는데..

참 이 개념이 이해는 되지만 막상 게임내에서 적용을 할때 어떻게 해야할지 살짝 아리송하긴 하다.

최근 문제를 풀며 이런 방식도 있구나.. 함과 동시에 신기하다는 생각이 교차했다.

 

그리고 어쩌면 새로운 게임에 적용해 볼 수도 있을것 같기는 하다.

 

최근 좀 아프기도 했고 멘탈도 흔들리는 일이 많아서 이러한 개념들에 너무 소홀했던것 같다..

 

다시 릿코드랑 프로그래머스를 들여다 봐야겠다..

'# 일기장' 카테고리의 다른 글

커뮤니티는 정신병이다.  (0) 2024.05.25
리듬게임을 만들어 보았다.  (0) 2023.02.15
결혼식 축의금을 받는 일을 해보았다(?)  (0) 2023.01.30
깃헙 까먹을때마다..  (0) 2022.10.03
프리랜서 활동 중  (1) 2022.09.19