Le caractère nul (en anglais, null character, null terminator ou null byte, abrégé en NUL ou NULL) est un caractère de contrôle avec la valeur zéro.
Il est présent dans de nombreux jeux de caractères, notamment ISO/CEI 646 (ou ASCII), , ISO/CEI 10646 (Unicode) et EBCDIC. Il est aussi disponible dans presque tous les langages de programmation traditionnels"A byte with all bits set to 0, called the null character, shall exist in the basic execution character set; it is used to terminate a character string literal." — ANSI/ISO 9899:1990 (the ANSI C standard), section 5.2.1.
Ce caractère existe déjà dans le Code Baudot sans pouvoir être utilisé, l'absence de signal ne permettant pas de porter de l'information.
La signification originale de ce caractère ressemblait à l'instruction nulle : lorsqu’il est envoyé à une imprimante ou à un terminal, il ne fait rien (certains terminaux l’affichent toutefois à tort comme une espace). Lorsque les téléscripteurs électromécaniques étaient utilisés comme périphériques de sortie informatiques, un ou plusieurs caractères nuls étaient envoyés à la fin de chaque ligne pour laisser le temps au mécanisme de revenir à la première position d'impression sur la ligne suivante. Sur une bande perforée, le caractère nul est représenté par une absence de perforations. Ainsi, une nouvelle bande non perforée est remplie avec des caractères nuls. Un texte peut souvent être inséré dans un espace réservé par des caractères nuls en perforant les nouveaux caractères sur les caractères nuls.
Aujourd'hui, le caractère a beaucoup d'importance dans le langage C et ses dérivés et dans de nombreux formats de données où il sert de caractère réservé utilisé pour signifier la fin d'une chaîne de caractères"A string is a contiguous sequence of characters terminated by and including the first null character" — ANSI/ISO 9899:1990 (the ANSI C standard), section 7.1.1, souvent appelée une . Cela permet à la chaîne d'être de n'importe quelle longueur avec une surcharge d'un seul octet, l'alternative consistant à stocker un compte de caractères ce qui impose une limite de longueur de chaîne de 255 pour un compteur d'un octet ou une surcharge de plus d'un octet.
Codage
Dans tous les jeux de caractères modernes, le caractère nul a une valeur de zéro. Dans la plupart des codages, cela est implanté en une seule unité de code avec une valeur nulle. Par exemple, dans UTF-8, il s'agit d'un seul octet contenant 8 bits de valeur zéro. Toutefois, dans UTF-8 modifié, le caractère nul est codé sous forme de deux octets : 0xC0, 0x80. Cela permet à l’octet de valeur zéro, qui n’est maintenant utilisé pour aucun caractère, d’être utilisé comme indicateur de fin de chaîne de caractères.
Références
Voir aussi Articles connexes Jeu nul Périphérique nul
Catégorie:Langage C Catégorie:Caractère de contrôle Catégorie:Système de fichiers