Ola...
por que char tem tamanho de 2 bytes ? o tipo char nao segue a tabela ASCII, ou seja 256 caracteres ?
Existe alguma tabela de caracteres com 65535 simbolos ?
David
Ola...
por que char tem tamanho de 2 bytes ? o tipo char nao segue a tabela ASCII, ou seja 256 caracteres ?
Existe alguma tabela de caracteres com 65535 simbolos ?
David
O Char tem 2 bytes para poder contemplar todos os idiomas, como por exemplo o caractere do português "ç" que apesar de ser 1 letra, ocupa 2 bytes por causa da acentuação.
Atualmente é mais comum utilizar a tabela UTF-8 no lugar da ASCII, pois ela é compativel com ASCII e consegue represetar até 1.112.064 caracteres.
Ola Cleonor,
na tabela ASCII, o "ç" é o codigo 135 (ou 128 se maiusculo). E o numero de combinacao de 2 bytes pode chegar no maximo em 65535 (ou seja, 256x256 menos o zero, ou FF FF en hexa), e nao 1.112.064.
O padrao UTF-8 usa 4 bytes, e nao 2 como o tipo char (justamente, a minha pergunta)
Porque o tipo Char é 2 bytes ? (0 à FFFF) ?
David
Boa noite, David.
ASCII representa 127 caracteres usando 7 bits. A ISO - 8859 representa os caracteres especiais (1 byte - usa o oitavo bit para aumentar o número de caracteres representáveis), 'estendendo' a tabela ASCII.
UTF (Unicode Transformation Format) é tipo de codificador de caracteres dos code points da 'tabela' Unicode (chega a mais de 2 bilhões de caracteres possíveis):
● UTF - 8: Representação de forma variável. Usa 8 bits para representar 1 caractere.
● UTF - 16: Representação de forma variável. Usa 16 bits pra representar 1 caractere.
● UTF - 32: Variação fixa. Sempre utiliza 32 bits.
Tanto Unicode quanto ASCII são um padrão de codificação de caracteres, sendo o primeiro 'universal' e o segundo abrangendo as letras mais primitivas do ocidente.
Respondendo sua pergunta: o tipo Char pode representar caractere Unicode com codificação UTF-16, por isso 2 bytes. A complexidade do caractere vai definir quantos bits ele vai consumir. Lembrando que o computador não conhece caractere, conhece binário.
Obrigado Silva.
Sempre pensei que char fosse 1 byte... Mas agora ficou mais claro.
David