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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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