IT/CS50
CS-50 컴퓨터는 이미지를 어떻게 인식할까?
이미지 형식(jpeg, png, bmp...)은 맨앞 비트의 형식이 고정값으로 구성돼있다. 그렇기 때문에 컴퓨터는 그 비트값을 읽고 아 이것은 이미지구나!! 하면서 바로 그래픽을 띄운다. 예를들어 특정 파일의 앞3비트가 255, 215, 255 라면 컴퓨터는 이 비트를 읽고 아 이건 jpeg파일이겠구나 라고 인식한 후 그래픽 작업을 한다. 그렇다면 컴퓨터는 비트로 어떻게 이미지를 나타낼까? 비트가 나열되어 있으면 컴퓨터는 픽셀마다 0이면 비우고 1이면 색칠한다. 이렇게 나열된 비트대로 색칠해서 이미지를 완성시킨다. 복사해서 붙여넣더라도 이미지가 같은 이유가 이것이다. 숫자값으로 이미지를 받으니 컴퓨터는 그 숫자대로 색칠하면 된다.
CS50-ASCII코드와 16진수
ASCII코드는 알파벳을 숫자로 나타낸것이다. A = 숫자 65처럼 알파벳마다 대응하는 숫자가 있다. 왜 이런식으로 나타낸걸까? 그건 가독성을 위해서다. A = 65라면 65는 이진수로 다시 나타내서 컴퓨터가 해석한다. 하지만 그 이진수는 길이가 매우 길기 때문에 한번에 보기쉽게 65라는 십진수로 나타낸다. 16진수 16진수는 숫자를 16진법으로 나타낸것이다. 0~9 + a,b,c,d,e,f,까지 총 16개다. 16진수로 나타내는 이유는 마찬가지로 가독성이다. 한가지 예로 jpeg파일의 경우 앞의 세자리 비트수가 255 216 255 인데 이걸 이진수로 바꾸면 8자리가 된다. 즉 8비트인데 이 8비트를 절반으로 나눈 4비트값이 16진수 숫자에 하나씩 대응된다. 예를들어 4비트중 가장 큰 값인 1111의 ..
cs50-2 컴퓨터는 많은 정보를 어떻게 저장할까?
기억장치에는 여러종류가 있다. 대표적으로 하드디스크, 램이다. CPU는 연산을 기억장치에 저장돼있는 비트, 바이트를 가지고 와서 처리한다. CPU의 속도가 고정이라면 기억장치의 속도가 빠를 수록 CPU의 연산 처리 속도는 빨라지는 경향이 있다. 더 빠르게, 더 많이 CPU에게 비트와 바이트를 줄 수 있기 때문이다. 하드디스크는 전원이 꺼져도 유지가 되며 램은 전원이 끄면 데이터가 사라진다. 하지만 램이 하드디스크에 비해 용량대비 훨씬 빠르고 비싸다. 그렇기에 하드디스크에서 꺼낸 정보를 램에서 일부 들고와서 CPU로 보낸다. (램이 하드보다 빠르기 때문에) 램이 하드디스크보다 상대적으로 빠르지만 컴퓨터입장에선 여전히 느리다. 그래서 CPU내부에 L1캐시와 L2캐시가 있다. 이 또한 휘발성이며 램보다 용량이..