2021-01-04-TIL
공부 방식에 대한 생각
글쓰는데에는 최소한의 시간만 투자하고 코딩하는데 집중!
TIL은 남에게 내용을 보여줄때는 카테고리별로 정리하는게 좋고, 취업할때 얼마나 공부한지 한눈에 보여주려면 날짜별로 정리하는 게 좋다.
백엔드에서는 코드의 가독성과 성능이 가장 중요하다. 이를 위해서는 자료구조와 알고리즘을 학습하여 적절히 활용해야한다.
이진수 덧셈
1
2
3
4
0 1 0 1 1 0 1 1
1 1 0 0 1 1 0 1
-----------------
1 0 0 1 0 1 0 0 0
8비트 이진수 두 개를 손으로 더해 본 것이다. 십진수로 바꾸면 01011011은 91, 11001101은 205이고, 합 100101000은 296이다.
이진수 덧셈은 오른쪽 자리부터 더하면서 자리올림(carry)을 넘기는 방식으로, 십진수 덧셈과 같다. 한 자리에서 나올 수 있는 경우는 0+0=0, 0+1=1, 1+1=0에 올림 1, 그리고 올림까지 더한 1+1+1=1에 올림 1이다. 위 계산의 맨 오른쪽 자리는 1+1이라 0을 쓰고 1을 올린다.
결과가 9비트가 된 것도 볼 만하다. 8비트 두 수의 합은 최대 9비트가 필요하다. 그래서 8비트 공간에만 결과를 담으면 맨 앞 1이 사라지고 00101000, 즉 40만 남는다. 정수 타입의 오버플로가 이렇게 생긴다. 비트 연산 문제에서 결과를 담을 타입의 크기를 먼저 확인해야 하는 이유이기도 하다.
코딩 인터뷰 문제 정리
『코딩 인터뷰 완전분석(Cracking the Coding Interview)』을 공부한 내용을 정리한 저장소다. 9장 인터뷰 문제 폴더는 배열과 문자열, 연결 리스트, 스택과 큐, 트리와 그래프, 비트 조작, 재귀와 동적 계획법, 정렬과 탐색 같은 주제별로 나뉘어 있다. 위의 이진수 덧셈은 이 가운데 비트 조작 주제의 기초에 해당한다.
댓글
아직 댓글이 없습니다