2019.06.30
오늘은 진도보다는 복습 위주로 함
댓글에서 막 과대평가 하는데 나 아직 함수도 완벽히 이해 못함
그냥 예제에서 쓰는거 보고 흉내내는 느낌
반환값, 매개변수의 유무에 따라 4가지로 나뉘는 형태
예제보면 이해되는데 막상 내가 쓰려고 하면 뭐 써야할지 고민됨
그 후 본건 이전 챕터에 있던 비트 연산자 파트
비트 연산자는 반드시 정수에만 쓸 수 있고 실수엔 쓸수없다고 함
&(AND) 연산: 두 개의 비트가 모두 1일 때 1을 반환
|(OR) 연산: 두 개의 비트중 하나라도 1일 때 1을 반환
^(XOR) 연산: 두 개의 비트가 서로 다르면 1을 반환
~(NOT) 연산: 비트를 반전(1을 0으로, 0을 1로)
<< 연산: 비트를 n만큼 왼쪽으로 이동 (2^n을 곱한 것과 같다)
>> 연산: 비트를 n만큼 오른쪽으로 이동
위에 사진에서 a>>2가 3이 되는 이유가
1111에서 오른쪽으로 2칸 밀어서 0011로 3 되는거 같은데
나누기 4하고 소수부를 버린거랑 동일하다고 생각하면 되나
다음엔 부동소수점 파트 한번 더 봄
소수부를 2의 제곱수들의 덧셈을 통해 근사적으로 표현하니까
0.5, 0.25, 0.125, 0.0625 등은 깔끔하게 표현 가능하지만
0.1은 이 방법으로 정확히 나타낼 수 없으므로 내부적으론 0.009999...
따라서 100번 수행하면 10이 아니라 10.000002가 나오는것 같은데 맞음?
for문 횟수를 17번으로 바꾸면 오차없이 1.7나오던데 이건 왜 그런거임?
다음은 여러 종류의 변수들
막 메모리 그림 나오는데 static이랑 지역변수가 좀 헷갈림
지역 변수 : 중괄호 내에 선언된 변수. 선언된 지역 내에서만 유효
전역 변수 : 함수의 외부에 선언된 변수. 어디서든 접근 가능하며 프로그램이 끝날 때까지 유효
static변수: 함수가 종료되어도 메모리 공간에 남아있음. 전역 변수처럼 프로그램이 끝날 때까지 유효
register변수: CPU의 접근이 가장 빠른 메모리 공간. 크기가 제한되어 있어 요구가 충분히 무시될 수 있음
static 변수랑 전역 변수랑 별 차이 없는것 같은데, 어디서나 접근 가능한 전역 변수 쓰는게 유리한거 아님?
그리고 register 변수 설명이 좀 두루뭉술 해보이는데, 가장 빠른 메모리 공간이면 최대한 register 변수로 선언하는게 유리하단거 아님?
뒷장은 재귀적 함수 호출 나오는데 내일해야지
오늘 궁금한게 많음 답변좀 해주삼 ㅇㅅㅇ;;
댓글 1