Il cancelletto (#)[1] è un simbolo di punteggiatura, costituito da segmenti paralleli incrociati, utilizzato prevalentemente nell'informatica. Viene solitamente confuso con il simbolo musicale ♯ (diesis), relativo anche al linguaggio di programmazione C#. Il codice Unicode del cancelletto è U+0023 mentre il suo valore ASCII in esadecimale è 23, in decimale è 35.
Il carattere è originato da un'antica abbreviatura latina (N maiuscola sbarrata) per indicare la parola numerus o numero e come tale si ritrova nelle carte manoscritte dei secoli passati. Negli Stati Uniti, in cui quest'uso è ancora vivo, è anche detto number sign ed è spesso utilizzato al posto del carattere №[2]. Indica una posizione numerica o, per estensione, un numero ordinale: "#1" significa (e si pronuncia) number one, ovvero, per estensione, "primo"[3][4][5][6].
Si ritiene che il simbolo faccia risalire le sue origini al simbolo ℔, un'abbreviazione del termine romano libra pondo, che si traduce come "libbra di peso"[7][8]. Questa abbreviazione è stata stampata con un tipo di legatura dedicato, con una linea orizzontale trasversale, in modo che la lettera minuscola l non venisse scambiata per il numero 1. Infine, il simbolo è stato ridotto per chiarezza come una sovrapposizione di due tratti orizzontali "=" su due tratti simili a barre "//"[8]. Esempi di utilizzo per indicare le libbre esistono già nel 1850[9].
Il simbolo è descritto come il carattere "numero" in un trattato del 1853 sulla contabilità[10], e il suo doppio significato è descritto in un testo di contabilità del 1880[11]. Il manuale di istruzioni della macchina da scrivere Blickensderfer modello 5 (circa 1896) sembra riferirsi al simbolo come "number mark"[12]. Alcune fonti statunitensi dell'inizio del XX secolo lo chiamano "segno numerico", sebbene questo potrebbe anche riferirsi al segno del numero. Un manuale del 1917 distingue tra due usi del segno: "numero (scritto prima di una cifra)"; e "pounds (scritte dopo una cifra)"[13]. L'uso della frase "pound sign" per fare riferimento a questo simbolo si usa dal 1932 negli Stati Uniti[14].
Per i dispositivi meccanici, il simbolo è apparso sulla tastiera della macchina da scrivere Remington Standard (1886 circa)[15], ma non è stato utilizzato sulle tastiere utilizzate per la composizione[9]. È apparso in molti dei primi codici della telescrivente e da lì è stato copiato in ASCII, che lo ha reso disponibile sui computer e quindi ha causato molti più usi per il carattere. Il simbolo è stato introdotto sul pulsante in basso a destra delle tastiere a toni nel 1968, ma quel pulsante non è stato ampiamente utilizzato fino all'avvento della posta vocale su larga scala (sistemi PBX, ecc.) nei primi anni '80[16].
Uno degli usi nei computer era etichettare il testo seguente come avente un'interpretazione diversa (come un comando o un commento) dal resto del testo. È stato adottato per l'uso nelle reti IRC (Internet Relay Chat) intorno al 1988 per etichettare gruppi e argomenti[17]. Questo utilizzo ha ispirato[18] Chris Messina a proporre un sistema simile da utilizzare su Twitter per taggare argomenti di interesse sulla rete di microblogging, questo è diventato noto come hashtag. Sebbene utilizzato inizialmente e più comunemente su Twitter, l'uso degli hashtag si è esteso ad altri siti di social media[19].
⌗
.Quando # precede un numero, viene letto come "numero". Una "matita"#2", ad esempio, indica "una matita numero due". Le abbreviazioni "No." e "№" sono usati comunemente e in modo intercambiabile.
Quando # è dopo un numero, viene letto come "libbra" o "libbre", che significa l'unità di peso. Il testo "sacchetto di farina 5 #" significherebbe "sacchetto di farina da cinque libbre". Le abbreviazioni "lb." e '℔' sono usati comunemente e in modo intercambiabile ma non sostituisce "£".
Quest'ultimo utilizzo è raro al di fuori del Nord America. Il segno non viene utilizzato per indicare le libbre come peso (per questo si usa lb o lbs), e certamente non per la valuta delle libbre. L'uso di # come abbreviazione di "numero" è tuttavia comune nella scrittura informale, ma l'uso in stampa è raro. Le macchine da scrivere britanniche avevano una chiave £ mentre le macchine da scrivere americane avevano una chiave #[37]. Molti codici di computer e telescriventi (come BS 4730, la variante nazionale britannica del pacchetto di caratteri ISO / IEC 646) ha sostituito "£" al posto di "#" per rendere le versioni britanniche, quindi era comune visualizzare lo stesso codice binario #
delle apparecchiature statunitensi e £
britanniche. ("$" non è stato sostituito a causa di evidenti problemi se si è tentato di comunicare valori monetari).
#
in HTML5[38].#
introduce un commento che va alla fine della riga[39]. La combinazione #!
all'inizio di un file eseguibile è " shebang ", "hash-bang" o "pound-bang", usati per dire al sistema operativo quale programma usare per eseguire lo script (vedi magic number). Questa combinazione è stata scelta in modo che fosse un commento nei linguaggi di scripting.
#!
è il simbolo della distribuzione CrunchBang Linux.#
viene utilizzato come modificatore della sintassi dell'array per restituire il numero di indice dell'ultimo elemento dell'array, ad esempio, l'ultimo elemento di un array si trova in $array[$#array]
. Il numero di elementi nell'array è $#array + 1
, poiché gli array Perl utilizzano per impostazione predefinita gli indici a base zero. Se l'array non è stato definito, anche il ritorno è indefinito. Se la matrice è definito ma non ha avuto alcun elemento assegnati, ad esempio @array = ()
, poi $#array
ritorna −1
. Vedere la sezione sulle funzioni degli array nell'articolo sulla struttura del linguaggio Perl.#
viene utilizzato per avviare una direttiva del preprocessore. All'interno delle macro, dopo #define
, viene utilizzato per vari scopi; ad esempio, il doppio cancelletto ##
viene utilizzato per la concatenazione dei token.#
è posizionato per convenzione alla fine di un prompt dei comandi per indicare che l'utente sta lavorando come root.#
viene utilizzato in un URL di una pagina web o altra risorsa per introdurre un "identificatore di frammento", un id che definisce una posizione all'interno di quella risorsa. Ad esempio, nell'URL https://en.wikipedia.org/wiki/Number_sign#In_computing
la parte dopo la #
(In_computing
) è l'identificatore del frammento, in questo caso denota che il display dovrebbe essere spostato per mostrare il tag contrassegnato da <span id="In_computing">...</span>
nell'HTML[40].#
precede il nome di ogni canale disponibile su un'intera rete IRC.#
volte è usato per denotare un permalink per quella particolare voce di weblog.#
viene spesso utilizzato per introdurre elementi di elenchi numerati.#
è utilizzato nei linguaggi di programmazione Modula-2 e Oberon progettati da Niklaus Wirth e nel linguaggio Component Pascal derivato da Oberon per denotare il simbolo di non uguale, come sostituto del segno di disuguale matematico ≠, essendo più intuitivo di <>
o !=
. Per esempio:IF i # 0 THEN...
#
è l'operatore utilizzato per chiamare un metodo.#
è un carattere macro di lettura per l'invio utilizzato per estendere la sintassi dell'espressione S con scorciatoie e supporto per vari tipi di dati (numeri complessi, vettori e altro).#
è il prefisso per una certa sintassi con un significato speciale.#
quando prefissato al nome di un campo, diventa una funzione di proiezione (funzione per accedere al campo di un record o di una tupla); inoltre, #
antepone una stringa letterale per trasformarla in un carattere letterale.#
quando viene utilizzata come variabile, diventa una funzione pura (un segnaposto che viene mappato su qualsiasi variabile che soddisfi le condizioni).#
quando si antepone un numero, fa riferimento a un argomento per un comando definito dall'utente. Per esempio \newcommand{\code}[1]{\texttt{#1))
.#
viene utilizzato con il tag @see
per introdurre o separare un campo, un costruttore o un membro del metodo dalla sua classe che lo contiene.#
viene utilizzato per indicare l'indirizzamento in modalità immediata, ad esempio LDA #10
, che significa "carica l'accumulatore A con il valore 10" nel linguaggio assembly MOS 6502.#
viene utilizzato per identificare un colore specificato in formato esadecimale, ad esempio #FFAA00
. Questo utilizzo deriva dalle specifiche del colore X11, che lo ereditavano dai primi dialetti assembler che utilizzavano #
come prefisso costanti esadecimali, ad esempio: ZX Spectrum Z80 assembly[43].#
. Le righe che iniziano con caratteri diversi da "#" vengono trattate come commenti.#
(insieme a $
e @
) vengono utilizzati come lettere aggiuntive negli identificatori, nelle etichette e nei nomi dei set di dati.#
è la funzione Tally o Count[45], e analogamente in Lua, #
può essere utilizzata come scorciatoia per ottenere la lunghezza di una tabella o per ottenere la lunghezza di una stringa. A causa della facilità di scrivere "#" su nomi di funzioni più lunghi, questa pratica è diventata uno standard nella comunità Lua.#
è un riferimento allo spazio dei nomi radice mentre ##
è un riferimento allo spazio dei nomi padre dello spazio corrente./d/ → [t] / _#
significa che / d / diventa [t] quando è l'ultimo segmento di una parola (cioè quando appare prima del confine di una parola).In Unicode vengono assegnati diversi caratteri #. Altri nomi attestati in Unicode sono: pound sign, hash, crosshatch, octothorpe.
Anteprima | # | # | ﹟ | |||
---|---|---|---|---|---|---|
Nome Unicode | number sign | fullwidth number sign | small number sign | |||
Codifiche | decimale | esadecimale | decimale | esadecimale | decimale | esadecimale |
Unicode | 35 | U + 0023 | 65283 | U + FF03 | 65119 | U + FE5F |
UTF-8 | 35 | 23 | 239 188 131 | EF BC 83 | 239185159 | EF B9 9F |
GB 18030 | 35 | 23 | 163 163 | A3 A3 | 169 124 | A9 7C |
Riferimento ai caratteri numerici | & # 35; | & # x23; | & # 65283; | & # xFF03; | & # 65119; | & # xFE5F; |
Riferimento a un carattere nominato | & num; | |||||
ASCII ed estensioni | 35 | 23 | ||||
EBCDIC (037, 500, UTF[53][54][55]) | 123 | 7B | ||||
EBCDIC (1026[56]) | 236 | CE | ||||
Shift JIS[57] | 35 | 23 | 129 148 | 81 94 | ||
EUC-JP[58] | 35 | 23 | 161 244 | A1 F4 | ||
EUC-KR[59]/UHC | 35 | 23 | 163 163 | A3 A3 | ||
Big5[60] | 35 | 23 | 161 173 | A1 AD | 161 204 | A1 CC |
EUC-TW | 35 | 23 | 161 236 | A1 CE | 162 173 | A2 AD |
LaTeX[61] | \ # |
Anteprima | # | |
---|---|---|
Nome Unicode | Keycap number sign | |
Codifiche | decimale | esadecimale |
Unicode | 35 65039 8419 | U + 0023 + FE0F + 20E3 |
UTF-8 | 35239184143226131163 | 23 EF B8 8F E2 83 A3 |
GB 18030 | 35132 49130 53129 54184 54 | 23 84 31 82 35 81 36 B8 36 |
Riferimento ai caratteri numerici | & # 35; & # 65039; & # 8419; | & # x23; & # xFE0F; & # x20E3; |
Shift JIS (NTT Docomo[62]) | 249 133 | F9 85 |
Shift JIS (SoftBank 3G[63]) | 247 176 | F7 B0 |
Shift JIS (au di KDDI) | 244 137 | F4 89 |
JIS a 7 bit (au di KDDI e altri[64]) | 123 105 | 7B 69 |
Shortcode emoji[65] | : hash: |
Sono inoltre assegnati almeno tre segni numerici ortograficamente distinti da altre lingue:
؀
)௺
)𑂽
)Sul layout di tastiera standard degli Stati Uniti, il simbolo # è ⇧Shift + 3
. Sulle tastiere standard del Regno Unito e di alcune altre tastiere europee, le stesse sequenze di tasti producono il segno della sterlina (sterlina), il simbolo £, e # può essere spostato su un tasto separato sopra il tasto Maiusc
destro. Se non c'è la chiave, il simbolo può essere prodotto su Windows con Alt + 3 5
, su Mac OS con ⌥Opt + 3
e su Linux con Compose + +
.