속도 2

크기나 속도 측정 단위 환산

기본적인 크기 단위는 다음과 같다. 1바이트 = 8비트 1킬로바이트 = 1024 바이트 1메가바이트 = 1024 킬로바이트 1기가바이트 = 1024 메가바이트 1테라바이트 = 1024기가 바이트 . . . 보다시피 처음에 바이트만 8비트이고, 나머지 단위는 죄다 이전 단위에 1024를 곱해준다. 그런데 통신 속도는 생소한 메가비트라는 단위를 사용한다. 보통 100Mbps 이런 식으로 표현을 하는데 이때 단위는 메가바이트가 아닌 메가비트이다. 더 숫자를 크게 보이려고 하는 꼼수인 듯 하다. 기본적으로 사용하는 단위에 혼동만 줄 뿐;;; 기가비트도 마찬가지이다. 메가비트를 메가바이트로 바꿀려면 비트->바이트 식이니까 8을 나눠주면 된다. 그러므로 100메가비트 속도는 12.5메가바이트 속도이다. 주의할게 1..

잡다 2012.11.16

비트 연산으로 산술연산 빠르게 처리하기

> n 은 2를 n번 나눈 것이고 위의 것들은 익히 잘 알려져 있고 꽤 쓰이는 듯 하다. 다음으로 2의 n제곱 단위의 수를 나눈 나머지 연산의 경우도 앤드 연산으로 가능하다. i % 2 => i & 1 i % 4 => i & 3 i % 8 => i & 7 i % 16 => i & 15 i % 32 => i & 31 .... i % 2의 n제곱 => i & (2의 n제곱 - 1) 나머지 연산보다는 비트 연산이 비할바 없이 빠르다. 참고로 릴리즈 실행 화일을 올리디버거 사용하여 어셈블리 코드를 뜯어보니 역시나 컴파일러가 저 경우 앤드 연산으로 알아서 최적화 코드를 생성함을 알 수 있었다. 다음으로 xor 연산으로 특정한 경우 뺄셈처리가 가능하다. 가령 32개의 요소가 있는 경우 0 ~ 31까지 인덱스를 역순..

C, C++ 문법 2011.07.24