홈페이지 » 어떻게 » 왜 다른 영문자의 문자보다 영어 문자가 더 적은 바이트를 필요로합니까?

    왜 다른 영문자의 문자보다 영어 문자가 더 적은 바이트를 필요로합니까?

    우리 중 대부분은 생각을 멈추지 않았지만 알파벳 문자는 문자를 나타내는 데 필요한 바이트 수가 모두 같지 않습니다. 그런데 왜 그런가요? 오늘의 수퍼 유저 Q & A 게시물에는 호기심 많은 독자의 질문에 대한 답변이 있습니다..

    오늘의 질문 및 답변 세션은 Q & A 웹 사이트의 커뮤니티 중심 그룹 인 Stack Exchange의 하위 부문 인 수퍼 유저의 도움으로 이루어졌습니다..

    Wikipedia의 부분 ASCII 차트 스크린 샷.

    질문

    수퍼 유저 khajvah는 왜 다른 알파벳이 저장 될 때 다른 양의 디스크 공간을 차지하는지 알고 싶어합니다.

    'a'를 텍스트 파일에 넣고 저장하면 크기가 2 바이트가됩니다. 그러나 'ա'(아르메니아 알파벳의 편지)를 넣으면 크기가 3 바이트가됩니다..

    컴퓨터의 알파벳의 차이점은 무엇입니까? 영어가 저장 될 때 왜 공간이 적게 차지합니까??

    편지는 편지 맞지? 아마! 이 알파벳의 수수께끼에 대한 답은 무엇입니까??

    대답

    수퍼 유저 기부자 Doktoro Reichard와 ernie가 우리에게 답을줍니다. 처음으로, Doktoro Reichard :

    주류 컴퓨터에서 사용하기 위해 개발 된 첫 번째 인코딩 체계 중 하나는 ASCII (정보 교환을위한 미국 표준 코드) 표준. 그것은 1960 년대 미국에서 개발되었습니다..

    영어 알파벳은 라틴 알파벳의 일부를 사용합니다 (예 : 영어로 된 악센트가 적은 단어). 이 알파벳에는 26 개의 개별 문자가 있으며, 고려하지 않습니다. 또한 영어 알파벳을 인 코드하는 모든 구성표에 개별 숫자와 구두점이 있어야합니다..

    1960 년대는 컴퓨터가 지금 우리가 가지고있는 메모리 또는 디스크 공간이 없었던 때이기도합니다. ASCII는 모든 미국 컴퓨터에서 기능 알파벳의 표준 표현으로 개발되었습니다. 당시 모든 ASCII 문자를 8 비트 (1 바이트)로 만들기로 한 결정은 당시의 기술적 인 세부 사항으로 인해 이루어졌습니다 (Wikipedia 기사에서는 천공 테이프가 한 번에 8 비트 씩 배치되었음을 언급합니다). 사실 원래의 ASCII 체계는 7 비트를 사용하여 전송할 수 있으며 여덟 번째는 패리티 검사에 사용할 수 있습니다. 이후의 개발에서는 원래의 ASCII 체계를 확장하여 여러 가지 악센트 부호가있는 수학적 및 터미널 문자를 포함 시켰습니다.

    최근 전 세계적으로 컴퓨터 사용량이 증가함에 따라 다른 언어로 된 사람들이 점점 더 많은 컴퓨터에 액세스 할 수있게되었습니다. 즉, 각 언어에 대해 다른 스키마와는 독립적으로 새로운 코드화 체계를 개발해야했으며, 다른 언어 터미널에서 읽는다면 충돌 할 수밖에 없었습니다..

    유니 코드는 가능한 모든 의미있는 문자를 단일 추상 문자 세트로 병합하여 다른 터미널의 존재에 대한 해결책으로 등장했습니다.

    UTF-8은 유니 코드 문자 세트를 인코딩하는 한 가지 방법입니다. 가변 너비 인코딩 (즉, 다른 문자의 크기가 다를 수 있음)이며 이전 ASCII 체계와의 하위 호환성을 위해 설계되었습니다. 따라서 ASCII 문자 세트는 크기가 1 바이트로 유지되고 다른 문자는 2 바이트 이상으로 유지됩니다. UTF-16은 유니 코드 문자 집합을 인코딩하는 또 다른 방법입니다. UTF-8과 비교하여 문자는 하나 또는 두 개의 16 비트 코드 단위 집합으로 인코딩됩니다.

    다른 주석에서 언급했듯이 'a'문자는 단일 바이트를 차지하고 'ա'는 UTF-8 인코딩을 나타내는 2 바이트를 차지합니다. 원래 질문의 여분의 바이트는 끝에 줄 바꿈 문자가 있기 때문입니다.

    에니의 대답이 뒤따 랐어.

    1 바이트는 8 비트이므로 최대 256 (2 ^ 8) 개의 서로 다른 값을 나타낼 수 있습니다.

    이보다 더 많은 가능성을 요구하는 언어의 경우 간단한 1 대 1 매핑을 유지할 수 없으므로 문자를 저장하는 데 더 많은 데이터가 필요합니다..

    일반적으로 대부분의 인코딩은 ASCII 문자에 대해 처음 7 비트 (128 값)를 사용합니다. 8 번째 비트 또는 더 많은 문자에 대해 128 개의 더 많은 값이 남습니다. 악센트 부호가있는 문자, 아시아 언어, 키릴 문자 등을 추가하면 1 바이트가 모든 문자를 보유하기에 충분하지 않은 이유를 쉽게 볼 수 있습니다..


    설명에 추가 할 것이 있습니까? 의견에서 소리가 나지. 다른 기술에 정통한 Stack Exchange 사용자의 답변을 더 읽고 싶습니까? 전체 토론 스레드를 여기에서 확인하십시오..