문자에는 몇 비트 또는 바이트가 있습니까? [닫은]


96

"문자"당 얼마나 많은 비트 또는 바이트가 있습니까?


1
귀하의 질문과 제목은 다른 것을 요구합니다. 어쨌든 이해가 안 돼요 더 설명해 주 시겠어요?
galymzhan 2011 년

예, 저도 그것에 대해 확신하지 못했습니다. 그러나 바이트는 그의 제목과 더 일치합니다. 1 비트의 문자 수는별로 의미가 없지만 문자의 비트 수는 더 의미가 있습니다. 그러나 위에서 언급했듯이 컨텍스트가 필요합니다.
Skurmedel 2011 년

4
@Skurmedel : 어떻게 알아? 제목도 "비트"라고했다.
Cody Gray

@Cody Gray : 편집 한 답변을보세요. 그의 태그는 바이트라고되어있어서 오타라고 생각했습니다. 그래도 내가 틀렸을 수 있습니다.
Skurmedel 2011 년

@Skurmedel : 이해가 안 돼요 ... 질문에 대한 답변을 게시하지 않았습니다. 그리고 예, 나는 태그를 전에 눈치 채지 못했습니다. 하지만 저는 여전히 2/3가 1/3보다 더 나은 매치라고 생각합니다.
Cody Gray

답변:


199

문자와 인코딩에 따라 다릅니다.

  • 8 비트 ASCII 인코딩의 ASCII 문자는 8 비트 (1 바이트)이지만 7 비트에 맞을 수 있습니다.

  • ISO-8859-1 인코딩의 ISO-8895-1 문자는 8 비트 (1 바이트)입니다.

  • UTF-8 인코딩의 유니 코드 문자는 8 비트 (1 바이트)에서 32 비트 (4 바이트) 사이입니다.

  • UTF-16 인코딩의 유니 코드 문자는 16 (2 바이트)에서 32 비트 (4 바이트) 사이이지만 대부분의 일반 문자는 16 비트를 사용합니다. Windows에서 내부적으로 사용하는 인코딩입니다.

  • UTF-32 인코딩의 유니 코드 문자는 항상 32 비트 (4 바이트)입니다.

  • UTF-8의 ASCII 문자는 8 비트 (1 바이트)이고 UTF-16-16 비트입니다.

  • ISO-8895-1 (0xA0-0xFF)의 추가 (비 ASCII) 문자는 UTF-8 및 UTF-16에서 16 비트를 사용합니다.

이는 0.03125에서 0.125 사이의 문자가 비트에 있음을 의미합니다.


이 답변은 소켓, 인코딩, 텍스트 등을 다룰 때 많은 도움이됩니다.
Mário Meyrelles

17

한 바이트에는 8 비트가 있습니다 (일반적으로 Windows에서 말함).

그러나 문자를 다루는 경우 문자 집합 / 인코딩에 따라 다릅니다. 유니 코드 문자는 2 바이트 또는 4 바이트가 될 수 있으므로 16 비트 또는 32 비트가 될 수 있지만 Windows-1252는 때때로 ANSI라고 잘못 불리우는 1 바이트이므로 8 비트입니다.

아시아 버전의 Windows 및 다른 일부에서는 전체 시스템이 2 바이트로 실행되므로 문자는 16 비트입니다.

편집 됨

Matteo의 의견에 따르면 모든 최신 버전의 Windows는 문자 당 내부적으로 16 비트를 사용합니다.


일부 레거시 앱은 여전히 ​​로컬 코드 페이지에 1 바이트 문자를 사용하지만, 모든 NT 버전의 Windows는 내부적으로 2 바이트 문자 (UCS-2에서 NT4까지, Windows 2000부터 UTF-16,로 저장 됨 wchar_t)로 실행됩니다. 따라서 모든 최신 응용 프로그램을 수행해야합니다. (리눅스 대신, 보통 UTF-8은 전체 시스템 전반에 걸쳐 사용되기 때문에 완전히 다른 이야기)
마테오 이탈리아

@Matteo : Windows에서 2 바이트는 반드시 유니 코드와 동일한 것은 아닙니다. 참조
Cody Gray

@Cody Gray : 예, 일반적으로 "더블 바이트"인코딩을 읽을 때 이는 레거시 아시아 항목이며 여러으로 저장되는 char반면 유니 코드 문자열은 wchar_t유형을 사용하여 저장됩니다 . 그건 그렇고, NT가 시작되었을 때 wchar_t대리 쌍을 피하기에 충분했지만 이제 UTF-16 짝수 wchar_t문자열이 가변 길이 문자를 가질 수 있으므로 Windows에서 유니 코드 문자는 2 ~ 4 바이트 (1 또는 2 wchar_t).
Matteo Italia

@Matteo : 네, 동의합니다. 첫 번째 댓글을 편집하기 전에 다르게 제안 된 내용을 본 것 같습니다. UTF-16 유니 코드 문자열은 이제 모든 버전의 Windows에서 내부적으로 사용됩니다.
Cody Gray

@Cody 회색 : 너무 많이 내 의견 편집에 약간의 경향은 혼란에 이르게:)
마테오 이탈리아
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.