# Number sign

The symbol # is known variously in English-speaking regions as the number sign, hash, or pound sign. The symbol has historically been used for a wide range of purposes including the designation of an ordinal number and as a ligatured abbreviation for pounds avoirdupois – having been derived from the now-rare ℔.
Since 2007, widespread usage of the symbol to introduce metadata tags on social media platforms has led to such tags being known as "hashtags", and from that, the symbol itself is sometimes called a hashtag.
The symbol is distinguished from similar symbols by its combination of level horizontal strokes and right-tilting vertical strokes.

## History

It is believed that the symbol traces its origins to the symbol ℔, an abbreviation of the Roman term libra pondo, which translates as "pound weight". The abbreviation "lb" was printed as a dedicated ligature including a horizontal line across (which indicated abbreviation). Ultimately, the symbol was reduced for clarity as an overlay of two horizontal strokes "=" across two slash-like strokes "//".
The symbol is described as the "number" character in an 1853 treatise on bookkeeping, and its double meaning is described in a bookkeeping text from 1880. The instruction manual of the Blickensderfer model 5 typewriter (c. 1896) appears to refer to the symbol as the "number mark". Some early-20th-century U.S. sources refer to it as the "number sign", although this could also refer to the numero sign (№). A 1917 manual distinguishes between two uses of the sign: "number (written before a figure)" and "pounds (written after a figure)". The use of the phrase "pound sign" to refer to this symbol is found from 1932 in U.S. usage. The term hash sign is found in South African writings from the late 1960s and from other non-North-American sources in the 1970s.
For mechanical devices, the symbol appeared on the keyboard of the Remington Standard typewriter (c. 1886). It appeared in many of the early teleprinter codes and from there was copied to ASCII, which made it available on computers and thus caused many more uses to be found for the character. The symbol was introduced on the bottom right button of touch-tone keypads in 1968, but that button was not extensively used until the advent of large-scale voicemail (PBX systems, etc.) in the early 1980s.
One of the uses in computers was to label the following text as having a different interpretation (such as a command or a comment) from the rest of the text. It was adopted for use within internet relay chat (IRC) networks circa 1988 to label groups and topics. This usage inspired Chris Messina to propose a similar system to be used on Twitter to tag topics of interest on the microblogging network; this became known as a hashtag. Although used initially and most popularly on Twitter, hashtag use has extended to other social media sites.

## Names

Number sign
    "Number sign" is the name chosen by the Unicode Consortium. Most common in Canada and the northeastern United States. American telephone equipment companies which serve Canadian callers often have an option in their programming to denote Canadian English, which in turn instructs the system to say number sign to callers instead of pound.
Pound sign or pound
    In the United States, the "#" key on a phone is commonly referred to as the pound sign, pound key, or simply pound. Dialing instructions to an extension such as #77, for example, can be read as "pound seven seven". This name is rarely used outside the United States, where the term pound sign is understood to mean the currency symbol £.
Hash, hash mark, hashmark
    In the United Kingdom, Australia, and some other countries, it is generally called a "hash" (probably from "hatch", referring to cross-hatching).
    Programmers also use this term; for instance #! is "hash, bang" or "shebang".
Hashtag
    Derived from the previous, the word "hashtag" is often used when reading social media messages aloud, indicating the start of a hashtag. For instance, the text "#foo" is often read out loud as "hashtag foo" (as opposed to "hash foo"). This leads to the common belief that the symbol itself is called hashtag. Twitter documentation refers to it as "the hashtag symbol".
Hex
    "Hex" is commonly used in Singapore and Malaysia, as spoken by many recorded telephone directory-assistance menus: "Please enter your phone number followed by the 'hex' key". The term "hex" is discouraged in Singapore in favour of "hash". In Singapore, a hash is also called "hex" in apartment addresses, where it precedes the floor number.
Octothorp, octothorpe, octathorp, octatherp
    Most scholars believe the word was invented by workers at the Bell Telephone Laboratories by 1968, who needed a word for the symbol on the telephone keypad. Don MacPherson is said to have created the word by combining octo and the last name of Jim Thorpe, an Olympic medalist. Howard Eby and Lauren Asplund claim to have invented the word as a joke in 1964, combining octo with the syllable therp which, because of the "th" digraph, was hard to pronounce in different languages. The Merriam-Webster New Book of Word Histories, 1991, has a long article that is consistent with Doug Kerr's essay, which says "octotherp" was the original spelling, and that the word arose in the 1960s among telephone engineers as a joke. Other hypotheses for the origin of the word include the last name of James Oglethorpe or using the Old English word for village, thorp, because the symbol looks like a village surrounded by eight fields. The word was popularized within and outside Bell Labs. The first appearance of "octothorp" in a US patent is in a 1973 filing. This patent also refers to the six-pointed asterisk (✻) used on telephone buttons as a "sextile".
Sharp
    Use of the name "sharp" is due to the symbol's resemblance to U+266F ♯ MUSIC SHARP SIGN. The same derivation is seen in the name of the Microsoft programming languages C#, J# and F#. Microsoft says that the name C# is pronounced 'see sharp'." According to the ECMA-334 C# Language Specification, the name of the language is written "C#" ("LATIN CAPITAL LETTER C (U+0043) followed by the NUMBER SIGN # (U+0023)") and pronounced "C Sharp".
Square
    On telephones, the International Telecommunication Union specification ITU-T E.161 3.2.2 states: "The symbol may be referred to as the square or the most commonly used equivalent term in other languages." Formally, this is not a number sign but rather another character, U+2317 ⌗ VIEWDATA SQUARE. The real or virtual keypads on almost all modern telephones use the simple # instead, as does most documentation.
Other
    Names that may be seen include: crosshatch, crunch, fence, flash, garden fence, garden gate, gate, grid, hak, mesh, oof, pig-pen, punch mark, rake, score, scratch, scratch mark, tic-tac-toe, and unequal.

## Usage

When ⟨#⟩ prefixes a number, it is read as "number". "A #2 pencil", for example, indicates "a number-two pencil". The abbreviations 'No.' and '№' are used commonly and interchangeably. The use of ⟨#⟩ as an abbreviation for "number" is common in informal writing, but use in print is rare. Where Americans might write "Symphony #5", British and Irish people usually write "Symphony No. 5".
When ⟨#⟩ is after a number, it is read as "pound" or "pounds", meaning the unit of weight. The text "5# bag of flour" would mean "five-pound bag of flour". The abbreviations "lb." and "℔" are used commonly and interchangeably. This usage is rare outside North America, where "lb" or "lbs" is used.
⟨#⟩ is not a replacement for the pound sign ⟨£⟩, but British typewriters and keyboards have a £ key where American keyboards have a # key. Many early computer and teleprinter codes (such as BS 4730 (the UK national variant of the ISO/IEC 646 character set) substituted "£" for "#" to make the British versions, thus it was common for the same binary code to display as # on US equipment and £ on British equipment ("$" was not substituted to avoid confusing dollars and pounds in financial communications).

### Mathematics

* In set theory, #S is one possible notation for the cardinality or size of the set S, instead of $|S|$. That is, for a set $S=\{s_{1},s_{2},s_{3},\dots ,s_{n}\}$, in which all $s_{i}$ are mutually distinct, $\#S=n=|S|.$ This notation is only sometimes used for finite sets, usually in number theory, to avoid confusion with the divisibility symbol, e.g. $a\mid b$.
* In topology, A#B is the connected sum of manifolds A and B, or of knots A and B in knot theory.
* In number theory, n# is the primorial of n.
* In constructive mathematics, # denotes an apartness relation.
* In computational complexity theory, #P denotes a complexity class of counting problems. The standard notation for this class uses the number sign symbol, not the sharp sign from music, but it is pronounced "sharp P". More generally, the number sign may be used to denote the class of counting problems associated with any class of search problems.

### Computing

* In Unicode and ASCII, the symbol has a code point as U+0023 # NUMBER SIGN and &num; in HTML5.
* In many scripting languages and data file formats, especially ones that originated on Unix, # introduces a comment that goes to the end of the line. The combination #! at the start of an executable file is a "shebang", "hash-bang" or "pound-bang", used to tell the operating system which program to use to run the script (see magic number). This combination was chosen so it would be a comment in the scripting languages.
** #! is the symbol of the CrunchBang Linux distribution.
* In the Perl programming language, # is used as a modifier to array syntax to return the index number of the last element in the array, e.g., an array's last element is at $array[$#array]. The number of elements in the array is $#array + 1, since Perl arrays default to using zero-based indices. If the array has not been defined, the return is also undefined. If the array is defined but has not had any elements assigned to it, e.g., @array =, then $#array returns −1. See the section on Array functions in the Perl language structure article.
* In both the C and C++ preprocessors, as well as in other syntactically C-like languages, # is used to start a preprocessor directive. Inside macros, after #define, it is used for various purposes; for example, the double pound (hash) sign ## is used for token concatenation.
* In Unix shells, # is placed by convention at the end of a command prompt to denote that the user is working as root.
* # is used in a URL of a web page or other resource to introduce a "fragment identifier" – an id which defines a position within that resource. In HTML, this is known as an anchor link. For example, in the URL https://en.wikipedia.org/wiki/Number_sign#Computing the portion after the # (Computing) is the fragment identifier, in this case denoting that the display should be moved to show the tag marked by <span id="Computing">...</span> in the HTML.
* Internet Relay Chat: on (IRC) servers, # precedes the name of every channel that is available across an entire IRC network.
* In blogs, # is sometimes used to denote a permalink for that particular weblog entry.
* In lightweight markup languages, such as wikitext, # is often used to introduce numbered list items.
* # is used in the Modula-2 and Oberon programming languages designed by Niklaus Wirth and in the Component Pascal language derived from Oberon to denote the not equal symbol, as a stand-in for the mathematical unequal sign ≠, being more intuitive than <> or !=. For example: IF i # 0 THEN ...
* In Rust, # is used for attributes such as in #[test].
* In OCaml, # is the operator used to call a method.
* In Common Lisp, # is a dispatching read macro character used to extend the S-expression syntax with short cuts and support for various data types (complex numbers, vectors and more).
* In Scheme, # is the prefix for certain syntax with special meaning.
* In Standard ML, #, when prefixed to a field name, becomes a projection function (function to access the field of a record or tuple); also, # prefixes a string literal to turn it into a character literal.
* In Mathematica syntax, #, when used as a variable, becomes a pure function (a placeholder that is mapped to any variable meeting the conditions).
* In LaTeX, #, when prefixing a number, references an arguments for a user defined command. For instance \newcommand{\code}[1]{\texttt{#1}}.
* In Javadoc, # is used with the @see tag to introduce or separate a field, constructor, or method member from its containing class.
* In Redcode and some other dialects of assembly language, # is used to denote immediate mode addressing, e.g., LDA #10, which means "load accumulator A with the value 10" in MOS 6502 assembly language.
* in HTML, CSS, SVG, and other computing applications # is used to identify a color specified in hexadecimal format, e.g., #FFAA00. This usage comes from X11 color specifications, which inherited it from early assembler dialects that used # to prefix hexadecimal constants, e.g.: ZX Spectrum Z80 assembly.
* In Be-Music Script, every command line starts with #. Lines starting with characters other than "#" are treated as comments.
* The use of the hash symbol in a hashtag is a phenomenon conceived by Chris Messina, and popularized by social media network Twitter, as a way to direct conversations and topics amongst users. This has led to an increasingly common tendency to refer to the symbol itself as "hashtag".
* In programming languages like PL/1 and Assembler used on IBM mainframe systems, as well as JCL (Job Control Language), the # (along with $ and @) are used as additional letters in identifiers, labels and data set names.
* In J, # is the Tally or Count function, and similarly in Lua, # can be used as a shortcut to get the length of a table, or get the length of a string. Due to the ease of writing "#" over longer function names, this practice has become standard in the Lua community.
* In Dyalog APL, # is a reference to the root namespace while ## is a reference to the current space's parent namespace.
* In Ada, the # character is used in based integer literals, which take the form base#digits#, where base is an integer from 2 to 16 specifying the radix, and digits are the digits valid in that base (0-9, optionally A-F for bases above 10).

### Other uses

* Algebraic notation for chess: A hash after a move denotes checkmate.
* American Sign Language transcription: The hash prefixing an all-caps word identifies a lexicalized fingerspelled sign, having some sort of blends or letter drops. All-caps words without the prefix are used for standard English words that are fingerspelled in their entirety.
* Copy writing and copy editing: Technical writers in press releases often use three number signs, ### directly above the boilerplate or underneath the body copy, indicating to media that there is no further copy to come.
* Footnote symbols (or endnote symbols): Due to ready availability in many fonts and directly on computer keyboards, "#" and other symbols (such as the caret) have in recent years begun to be occasionally used in catalogues and reports in place of more traditional symbols (esp. dagger, double-dagger, pilcrow).
* Linguistic phonology: # denotes a word boundary. For instance, /d/ → [t] / _# means that /d/ becomes [t] when it is the last segment in a word (i.e. when it appears before a word boundary).
* Linguistic syntax: A hash before an example sentence denotes that the sentence is semantically ill-formed, though grammatically well-formed. For instance, "#The toothbrush is pregnant" is a grammatically correct sentence, but the meaning is odd.
* Medical prescription drug delimiter: In some countries, such as Norway or Poland, # is used as a delimiter between different drugs on medical prescriptions.
* Medical shorthand: The hash is often used to indicate a bone fracture. For example, "#NOF" is often used for "fractured neck of femur". In radiotherapy, a full dose of radiation is divided into smaller doses or 'fractions'. These are given the shorthand # to denote either the number of treatments in a prescription (e.g. 60Gy in 30#), or the fraction number (#9 of 25).
* As a proofreading mark, to indicate that a space should be inserted.
* Publishing: When submitting a science fiction manuscript for publication, a number sign on a line by itself (indented or centered) indicates a section break in the text.
* Scrabble: Putting a number sign after a word indicates that the word is found in the British word lists, but not the North American lists.
* Teletext and DVB subtitles (in the UK and Ireland): The hash symbol, resembling music notation's sharp sign, is used to mark text that is either sung by a character or heard in background music, e.g. # For he's a jolly good fellow #

## Unicode

The number sign was assigned code 35 (hex 0x23) in ASCII where it was inherited by many character sets. In EBCDIC it is often at 0x7B or 0xEC.
Unicode characters with "number sign" in their names:
* U+0023 # NUMBER SIGN Other attested names in Unicode are: POUND SIGN, HASH, CROSSHATCH, OCTOTHORPE.
* U+0600 ؀ ARABIC NUMBER SIGN
* U+0BFA ௺ TAMIL NUMBER SIGN
* U+1AC6 ᫆ COMBINING NUMBER SIGN ABOVE
* U+FE5F ﹟ SMALL NUMBER SIGN
* U+FF03 ＃ FULLWIDTH NUMBER SIGN
* U+110BD KAITHI NUMBER SIGN
* U+110CD 𑃍 KAITHI NUMBER SIGN ABOVE
* U+11FE9 𑿩 TAMIL TRADITIONAL NUMBER SIGN
* U+E0023 TAG NUMBER SIGN
Additionally, a Unicode named sequence KEYCAP NUMBER SIGN is defined for the grapheme cluster U+0023+FE0F+20E3 (#️⃣).

## On keyboards

On the standard US keyboard layout, the # symbol is ⇧ Shift+3. On standard UK and some other European keyboards, the same keystrokes produce the pound (sterling) sign, £ symbol, and # may be moved to a separate key above the right shift key. If there is no key, the symbol can be produced on Windows with Alt+35, on Mac OS with ⌥ Opt+3, and on Linux with Compose++.