Caractere Nulo

Na ciência da computação, o caractere nulo (português brasileiro) ou carácter nulo (português europeu) (null character) ou terminador nulo é um caractere da tabela ASCII e do conjunto de caracteres Unicode cujo valor é 0 (zero).

Origem

Originalmente, este caracter tinha o mesmo significado da instrução NOP da linguagem assembly; quando enviada a uma impressora ou terminal de computador, ela não tinha qualquer efeito (alguns terminais, porém, mostravam esta instrução (erroneamente) como um espaço). Na fita perfurada este caractere é representado pela ausência de perfuração, consequentemente uma fita ainda não usada é completamente preenchida com caracteres nulos.

Carácter

Em muitos computadores e teclados de terminais de dados, é possível inserir um caracter nulo pressionando simultaneamente a tecla control e a tecla "@" (usualmente, além disso é necessário pressionar a tecla shift e outra tecla como a "2" ou "P"). Consequentemente, em alguns contextos, o caracter nulo é representado visualmente como "^@". Em outros contextos, ele é representado como símbolo subscrito, "NUL". No padrão Unicode, existe um caracter para representação visual do caracter nulo, o "símbolo para nulo", U+2400 — não deve ser confundido com o caracter nulo verdadeiro, U+0000.

O carácter nulo e a representação de strings

Na linguagem de programação C existe um significado especial para este caracter. Ele é utilizado para indicar o final de strings de caracteres. O caracter nulo é freqüentemente representado como "\0" no código fonte escrito em C. As strings finalizadas com o caracter nulo são conhecidas como "terminadas em nulo" (null-terminated).

Em algumas linguagens (como Pascal) o caracter nulo não é utilizado, pois as strings são armazenadas em um array precedido pelo tamanho desta string. A principal vantagem da utilização do caracter nulo em strings é que elas podem ter qualquer tamanho, e apenas um caracter adicional é necessário. As strings terminadas pelo caracter nulo podem ter vantagens de desempenho, já que operações que percorrem uma string não precisam manter o registro de quantos caracteres foram vistos, e operações que modificam o tamanho da string não precisam atualizar o array com o novo tamanho. O desempenho de cache também pode ser melhor.

Por outro lado, a vantagem em armazenar o tamanho da string é que ele fica disponível imediatamente; um programa utilizando strings terminadas em nulo precisa contar todos os caracteres para determinar o tamanho da string. Além disso, em strings não terminadas em nulo é possível incluir o caracter nulo no meio de uma string, simplificando o processamento de dados e eliminando exceções. Em strings terminadas em nulo, a primeira ocorrência de um caracter nulo é interpretada como o final da string.

Entretanto, o tipo de dado utilizado para armazenar o tamanho da string também é importante; se o tamanho é armazenado como um byte, como no Pascal, as strings tem um limite de tamanho de 255 caracteres. Tipos de dados maiores, por outro lado, tomam mais espaço de memória que o caracter nulo (um número de 16 bit ocupa dois bytes e um número de 32 bit ocupa quatro). Nos anos 70, quando a linguagem C foi projetada, os limites de espaço em memória eram considerados problemas muito mais importantes do que hoje, o que levou a escolha de strings terminadas com o caracter nulo.

Padronização

  • Um byte com todos os bits em 0, chamado de caracter nulo (null character), deve existir no conjunto básico de caracteres; ele é utilizado para terminar a string literal de caracteres. ANSI/ISO 9899:1990 (O padrão ANSI C), seção 5.2.1
  • Uma "string" é uma sequência contígua de caracteres terminados por e incluindo o primeiro caracter nulo. ANSI/ISO 9899:1990 (O padrão ANSI C), seção 7.1.1
  • Uma null-terminated byte string ou NTBS (string de bytes terminada por nulo) é uma sequência de caracteres cujo elemento de maior endereço, com conteúdo definido, possui o valor zero (o caracter nulo). ISO/IEC 14882 (O padrão ISO C++), seção 17.3.2.1.3.1

Tags:

Caractere Nulo OrigemCaractere Nulo CarácterCaractere Nulo O carácter nulo e a representação de stringsCaractere Nulo PadronizaçãoCaractere NuloASCIICaractereCiência da computaçãoPortuguês brasileiroPortuguês europeuUnicode

🔥 Trending searches on Wiki Português:

Vénus (planeta)ShopeeAdolf HitlerMaria AntonietaLúciferUnião EuropeiaMarrocosDia Mundial do TeatroLíngua inglesaElianaVladimir PutinSeleção Neerlandesa de FutebolGibraltarCoronelismoPartido Liberal (2006)Jenna OrtegaAcidente nuclear de ChernobilCopa Libertadores da América de 2023Reis (telenovela)Shingeki no KyojinAmérica do SulCidade de Deus (filme)Daniel (cantor)Diana, Princesa de GalesNick NolteMaya GabeiraOne PieceCharles DarwinPiolinTelegramTarcísio de FreitasZé PequenoVídeoJosé LoretoBaphometHinduísmoRadioatividadeMassagem tântricaSport Club Corinthians PaulistaMonte FujiVila Sônia (bairro de São Paulo)Barack ObamaOs Paralamas do SucessoJohn WickNovas sete maravilhas do mundoThe Vampire Diaries (série de televisão)CleópatraEsporte Clube Água SantaLista de municípios do Brasil por populaçãoHomem de NeandertalLeila LopesCiênciaCaso RichthofenUcrâniaMarte (planeta)RomantismoRio Grande do SulGabriele AmorthFernando PessoaZinédine ZidaneChacina da CandeláriaKatherine JohnsonKara VéiaPedrinho MatadorSeleção Gibraltina de FutebolThe Big Bang TheoryBruna SurfistinhaPresidente do BrasilGalileu GalileiAlan PatrickCruzeiro Esporte ClubeLista de episódios de Naruto ShippudenPaulo de TarsoSantos DumontLuiz GonzagaFernandinho Beira-MarZ-Library🡆 More