ASCII 코드는 7 비트입니까, 8 비트입니까?
선생님은 ASCII가 8 비트 문자 코딩 체계라고 말씀하셨습니다. 그러나 0-127 코드에 대해서만 정의되므로 7 비트에 맞을 수 있습니다. 그렇다면 ASCII 비트가 실제로 7 비트 코드라고 주장 할 수 없습니까?
그리고 ASCII가 8 비트 코드라고 말할 때 우리는 무엇을 의미합니까?
ASCII 는 실제로 원래 7 비트 코드로 인식되었습니다. 이것은 8 비트 바이트가 유비쿼터스가되기 훨씬 전에 수행되었으며, 1990 년대까지도 자체 목적을 위해 각 텍스트 바이트의 8 비트를 사용할 수 있다고 가정하는 소프트웨어를 찾을 수있었습니다 ( "8 비트 정리가 아님"). 요즘 사람들 은 이것을 0x80에서 0xFF까지의 바이트가 정의 된 의미가없는 8 비트 코딩으로 생각 하지만 그것은 retcon 입니다.
8 번째 비트를 사용하는 수십 개의 텍스트 인코딩이 있습니다. ASCII 호환 여부와 고정 너비 또는 가변 너비로 분류 할 수 있습니다. ASCII 호환 은 컨텍스트에 관계없이 0x00에서 0x7F까지의 값을 가진 단일 바이트가 ASCII에서와 동일한 문자를 인코딩 함을 의미합니다 . 가능하다면 ASCII와 호환되지 않는 텍스트 인코딩과 관련이있는 것은 원하지 않습니다. ASCII를 예상하는 순진한 프로그램은 비극적이고 종종 보안을 침해하는 방식으로 잘못 해석하는 경향이 있습니다. 요즘에는 너무 많이 사용되지 않아서 (예를 들어) HTML5는 UTF-16을 제외하고는 공개 웹에서 사용을 금지합니다 . 나는 그들에 대해 더 이상 이야기하지 않을 것입니다.
고정 너비 인코딩은 모든 문자가 동일한 바이트 수를 사용하여 인코딩됩니다. ASCII 호환이 되려면 고정 포함 인코딩이 1 바이트 만 사용하여 모든 문자를 인코딩해야하므로 256 자 이하일 수 있습니다. 오늘날 가장 일반적인 인코딩 은 ISO 8859-1 의 확장 인 Windows-1252 입니다.
오늘날 알아야 할 가치가있는 가변 너비 ASCII 호환 인코딩은 단 하나 뿐이지 만 매우 중요합니다. 모든 유니 코드를 ASCII 호환 인코딩으로 압축하는 UTF-8 입니다. 당신이 그것을 관리 할 수 있다면 당신은 정말로 이것을 사용하고 싶습니다.
마지막으로, "ASCII"는 오늘날 원래 표준 (ANSI X3.4-1968)이 아닌 유니 코드에서 실용적인 정의를 가져옵니다. 역사적으로 ASCII 127 문자 레퍼토리에는 수십 가지 변형이 있었기 때문입니다. 구두점은 프랑스어 텍스트 전송을 용이하게하기 위해 악센트 부호가있는 문자로 대체 될 수 있습니다. 오늘날 이러한 모든 변형은 더 이상 사용되지 않으며 사람들이 "ASCII"라고 말하면 값이 0x00에서 0x7F 인 바이트가 유니 코드 코드 포인트 U + 0000에서 U + 007F를 인코딩한다는 것을 의미합니다. 이는 기술 표준을 작성하는 경우에만 중요 할 것입니다.
ASCII의 역사와 그 이전의 인코딩에 관심이 있다면 "문자 코드의 진화, 1874-1968"(samizdat 사본 : http://falsedoor.com/doc/ascii_evolution-of- character-codes.pdf ) 그런 다음 참조를 추적합니다 (그 중 대부분은 온라인에서 사용할 수 없으며 대학 도서관에 액세스해도 찾기 어려울 수 있습니다).
Linux man ascii
에서는 다음과 같이 말합니다.
ASCII는 정보 교환을위한 미국 표준 코드입니다. 7 비트 코드입니다.
원래 ASCII 테이블은 7 비트로 인코딩 되므로 128 자입니다.
오늘날 대부분의 독자 / 편집기 는 8 비트로 인코딩되고 256 자 ( Á , Ä , Œ , é , è 및 유럽 언어에 유용한 기타 문자 포함 )를 사용하는 "확장 된"ASCII 테이블 ( ISO 8859-1 ) 을 사용합니다. 수학적 글리프 및 기타 기호).
기본 ASCII 테이블과 UTF-8을 사용하는 것과 동일한 인코딩 (의미가 있지만 0x41
입니다 모두 코드에), 그것은 "라틴 확장-A"블록에 대한 동일한 인코딩을 공유하지 않습니다. 단품 또는 피냐타 와 같은 단어에 이상한 문자가 나타나는 경우가 있습니다.
ASCII 인코딩은 7 비트이지만 실제로 ASCII로 인코딩 된 문자는 7 비트 그룹에 저장되지 않습니다. 대신 하나의 ASCII가 바이트에 저장되며 MSB는 일반적으로 0으로 설정됩니다 (예, ASCII로 낭비 됨).
텍스트 편집기에서 ASCII 문자 집합에 문자열을 입력하고 인코딩을 ASCII로 설정하고 2 진 / 16 진을 확인하여이를 확인할 수 있습니다.
곁에 : (엄격하게) ASCII 인코딩의 사용은 이제 흔하지 않습니다. UTF-8 ( 위에서 언급 한 MSB를 낭비 하지 않습니다 . 실제로 MSB가 1이면 코드 포인트가 1 바이트 이상으로 인코딩됨을 나타냄 )를 선호 합니다.
The original ASCII code provided 128 different characters numbered 0 to 127. ASCII a 7-bit are synonymous, since the 8-bit byte is the common storage element, ASCII leaves room for 128 additional characters which are used for foreign languages and other symbols. But 7-bit code was original made before 8-bit code. ASCII stand for American Standard Code for Information Interchange In early internet mail systems, it only supported only 7-bit ASCII codes, this was because it then could execute programs and multimedia files over suck systems. These systems use 8 bits of the byte but then it must then be turned into a 7-bit format using coding methods such as MIME, UUcoding and BinHex. This mean that the 8-bit has been converted to a 7-bit characters, which adds extra bytes to encode them.
ASCII를 7 비트 코드로 호출 할 때 가장 왼쪽 비트가 부호 비트로 사용되므로 7 비트로 최대 127까지 쓸 수 있습니다. 이는 ASCII의 최대 imam 값이 0 ~ 255이기 때문에 -126에서 127까지를 의미합니다. 마지막 비트가 부호 비트로 간주되는 경우 7 비트의 인수로만 만족됩니다.
참고 URL : https://stackoverflow.com/questions/14690159/is-ascii-code-7-bit-or-8-bit
'IT story' 카테고리의 다른 글
Node.js에서 만든 웹 사이트를 Github 페이지에 게시하는 방법은 무엇입니까? (0) | 2020.09.14 |
---|---|
lock (new object ()) —화물 컬트 또는 미친 "언어 특수 사례"? (0) | 2020.09.14 |
Android Room에서 엔티티의 특정 필드 업데이트 (0) | 2020.09.14 |
Haskell의 예외는 어떻게 작동합니까? (0) | 2020.09.14 |
벡터의 대안 (0) | 2020.09.14 |