본문 바로가기

Overflow2

chapter3(4) primitive type - wrap around wrap around는 엄청 쉽게 이해할 수 있는 내용인 거 같지만 Go를 공부하면서 처음 접한 이론?이라 단독 포스트를 하게 됐다. 이번에 공부하면서 처음 알게 된 것부터 wrap around까지 천천히 최대한 자세히 서술해보겠다. 원래 알고 있던 2진수를 조금 더 깊고 자세하게 알게 되는 계기가 됐는데 그중 msb와 lsb가 뭔지부터 설명하겠다. lsb [least significant bit] bit의 맨 오른쪽에 있는 bit를 뜻하고 연산의 시작점이라 할 수 있다. msb [most significant bit] bit의 맨 왼쪽에 있는 bit를 뜻하고 signed int는 msb가 0 이면 +(plus), 1 이면 -(minus)를 표현하고 unsigned int는 2^n으로 사용된다. wrap.. 2022. 1. 30.
chapter3(3) primitive type - uint and casting and overflow casting은 변수가 표현하는 범위인 type(자료형)을 확장(up casting) 또는 축소(down casting) 하는 작업을 casting이라 한다. java에서는 class 간의 상속 혹은 구현 관계에서도 casting이 적용된다. (Go는 class가 없다. 하지만 구현체가 있으므로 구현체 공부할 때 비슷한 게 나오지 않을까??) 하지만 이전 글에서 말했던 대로 Go는 type의 상하관계가 뭐든 auto casting을 지원하지 않는다. uint는 사용처는 제한적이다. 왜냐? 변수를 명시적 선언하지 않는 이상 묵시적 선언을 하면 정수인 경우 무조건 int이기 때문에 묵시적 선언 시 casting을 하거나 명시적 선언 시 type을 명시하는 방법뿐이다. 다른 방법으론 int로 표현할 수 없는 .. 2022. 1. 24.