0.1 은 2진수로 끝나지 않는다
0.1 + 0.2 가 0.3 이 아닌 이유. 실수는 값을 그대로 담지 않고 부호·지수·가수 세 조각으로 나눠 담습니다.
정수는 직선이 아니라 원이다
int.MaxValue 에 1을 더하면 int.MinValue 가 됩니다. 예외도 경고도 없이 값만 바뀝니다. 왜 하필 최솟값인지 그림으로 봅니다.
음수는 메모리에 어떻게 들어가 있나
음수라고 특별한 표시가 붙지 않습니다. 같은 자리에 비트만 다르게 채워질 뿐입니다. 부호 비트와 2의 보수를 그림으로 봅니다.
변수를 선언하면 무슨 일이 일어나는가
변수는 값을 담는 상자가 아니라 이름이 붙은 메모리 칸입니다. 선언·할당·사용이 각각 언제 무엇을 하는지 그림으로 봅니다.
LinkedList 는 손을 잡고 선 줄이다
칸이 붙어 있지 않고 각자 다음 사람의 위치를 들고 있습니다. 끼워 넣기는 싸지고 번호로 찾기는 비싸집니다.