c언어 펀더멘탈이란 책을 보다 충격적인 내용을 발견했다.
바이트(byte)는 실행환경 문자세트의 문자 중 임의의 한 문자를 저장할 수 있을 만큼의 크기(즉 비트 개수)를 갖는 메모리의 단위이다. 단 여기에는 두 가지 추가적인 제한이 붙는다. 첫째는 바이트의 크기가 "최소한" 8비트 이상이어야 하며, 둘째는 각 바이트는 메모리에서 고유한 주소값을 가져야 한다는 것이다.
문자(character)는 한 바이트의 크기(즉 바이트의 정의에 의해 요구되는 비트 개수)에 맞는 임의의 비트열이다.
바이트는 8비트라고 배웠는데...
절대 바이트는 8비트를 묶어 부르는 용어가 아니다. 라고 굵게 강조까지 되어있다.
요즘 사용하는 대부분의 컴퓨터가 우연히 8비트를 사용해서 8비트를 바이트로 사용하는데, 매우 드물게 1바이트를 9비트나 16비트로 정의하는 컴퓨터도 있다고 한다.
그리고 표준 ASCII도 7비트 코드라는 사실과... 그러니까 2의 7제곱 만큼의 갯수 128개의 문자를 갖는다.
위에 말한것 처럼 보통 컴퓨터가 문자하나를 8비트로 잡기는 하지만 ASCII는 7비트이고 남은 1비트 공간에 의해 128번부터 255번까지의 128개의 공간이 비어있다. 이 렇게 비어 있는 공간을 국가나 컴퓨터 산업체들이 자신들이 필요한 여러 문자를 배치하여 사용하기 시작했고, 이런 관행으로 ASCII가 0번부터 255번까지의 코드값을 갖는 것으로 알려졌다.
신기한 사실을 많이 알았다. ㅎㅎ
'programming > 임시' 카테고리의 다른 글
jstl (0) | 2012.11.25 |
---|---|
자바 POI라이브러리 (0) | 2012.11.19 |
mysql 프로시져 루프돌며 insert (0) | 2012.05.10 |
개발자를 위한 윈도우 후킹 테크닉 (0) | 2012.05.10 |
맥에서 mysql 삭제 (0) | 2011.09.02 |