Notação de acento circunflexo - Caret notation

A notação de acento circunflexo é uma notação para caracteres de controle em ASCII . A notação é atribuída ^Aao código de controle 1, sequencialmente através do alfabeto, para ^Zatribuído ao código de controle 26 (0x1A). Para os códigos de controle fora do intervalo de 1 a 26, a notação se estende aos caracteres ASCII não alfabéticos adjacentes.

Freqüentemente, um caractere de controle pode ser digitado em um teclado mantendo pressionado o Ctrle digitando o caractere mostrado após o acento circunflexo. A notação é freqüentemente usada para descrever atalhos de teclado, embora o caractere de controle não seja realmente usado (como em "digite ^ X para cortar o texto").

O significado, a interpretação ou a resposta aos códigos de controle individuais não são prescritos pela notação circunflexa.

Descrição

A notação consiste em um circunflexo ( ^ ) seguido por um único caractere (geralmente uma letra maiúscula). O caractere possui o código ASCII igual ao código de controle com o bit representando 0x40 invertido. Um acelerador útil, isto tem o efeito de tornar os códigos de controlo 1 através de 26 como ^ Um através ^ Z . Sete caracteres de controle ASCII são mapeados fora do alfabeto em maiúsculas: 0 ( NUL ) é ^ @ , 27 ( ESC ) é ^ [ , 28 é ^ \ , 29 é ^] , 30 é ^^ , 31 é ^ _ e 127 ( DEL ) é ^? .

Os exemplos são " ^ M ^ J " para o Windows CR, par de nova linha LF e descrevendo a seqüência de escape ANSI para limpar a tela como " ^ [[3J ".

Apenas o uso de caracteres no intervalo de 63-95 (" ? @ABC ... XYZ [\] ^ _ ") é especificamente permitido na notação, mas o uso de caracteres alfabéticos minúsculos inseridos no teclado é quase sempre permitido - eles são tratados como equivalentes a letras maiúsculas.

A conversão é um bit a bit exclusivo ou com 0x40 (64). Isso é idêntico a adicionar 64 módulo 128 ou adicionar 64 e mascarar com 0x7F. Essa mesma operação é feita para converter de um código de controle no caractere a ser impresso após o acento circunflexo e o inverso para converter um caractere em um código de controle. Ao converter para um caractere de controle, exceto para '?', O mascaramento com 0x1F produzirá o mesmo resultado e também tornará as minúsculas no mesmo caractere de controle das maiúsculas.

Não existe uma versão correspondente da notação circunflexa para códigos de controle com mais de 7 bits, como os caracteres de controle C1 de 128–159 (0x80–0x9F). Alguns programas que produzem notação circunflexa os mostram como barra invertida e octal (" \ 200 " a " \ 237 "). Veja também a notação de barra usada pela Acorn Computers, abaixo .

Use em software

Muitos sistemas de computador permitem que o usuário insira um caractere de controle mantendo pressionada Ctrle pressionando a letra usada na notação circunflexa. Isso é prático porque muitos caracteres de controle (por exemplo, EOT) não podem ser inseridos diretamente de um teclado. Embora haja muitas maneiras de representar caracteres de controle, essa correspondência entre notação e digitação torna a notação circunflexa adequada para muitas aplicações.

Normalmente, a necessidade de manter pressionado ⇧ Shifté evitada, por exemplo, as letras minúsculas funcionam como as maiúsculas. Em um layout de teclado dos EUA, ctrl+ /produz DEL e ctrl+ 2produz ^ @. Também é comum que ctrl+ spaceproduza ^ @.

A notação de acento circunflexo é usada para descrever caracteres de controle na saída de muitos programas, particularmente drivers de terminal Unix e visualizadores de arquivos de texto, como mais e menos comandos. Embora o uso de códigos de controle seja um tanto padrão, alguns usos diferem de sistema operacional para sistema operacional, ou mesmo de programa para programa. O significado ou interpretação real dos códigos de controle individuais não é prescrito pela notação circunflexa e, embora a especificação ASCII dê nomes aos códigos de controle, ela não prescreve como o software deve responder a eles.

Notações alternativas

A API de processamento de string GSTrans nos sistemas operacionais para Acorn Atom e BBC Micro , e no RISC OS para Acorn Archimedes e máquinas posteriores, usa o caractere de barra vertical |no lugar do acento circunflexo. Por exemplo, |M(pronuncia-se "control em", o mesmo que para a ^Mnotação) é o caractere de retorno de carro , ASCII 13. ||é o código de caractere de barra vertical 124, |?é o caractere 127 como acima e |!adiciona 128 ao código do caractere que segue isso, então |!|?é o código de caractere 128 + 127 = 255 .

Veja também