In
mathematics and
computer science,
hexadecimal (also
base ,
hexa,
or
hex) is a
numeral
system with a
radix, or base, of 16. It
uses sixteen distinct symbols, most often the symbols
0–
9 to represent values zero to
nine, and
A,
B,
C,
D,
E,
F (or
a through
f) to represent values ten to fifteen. For
example, the hexadecimal number 2AF3 is equal, in decimal, to (2 ×
16
^{3}) + (10 × 16
^{2}) + (15 × 16) + 3, or
10,995.
Each hexadecimal digit represents four binary digits (
bits) (also called a "
nibble"),
and the primary use of hexadecimal notation is as a humanfriendly
representation of
binary coded values in
computing and digital electronics. For example,
byte values can range from 0 to 255 (decimal) but may
be more conveniently represented as two hexadecimal digits in the
range 00 through FF. Hexadecimal is also commonly used to represent
computer
memory addresses.
Representing hexadecimal
In situations where there is no context, a hexadecimal number might
be ambiguous and confused with numbers expressed in other bases.
There are several conventions for unambiguously expressing values.
In mathematics, a subscript (itself written in decimal) is often
used on each number explicitly giving the base: 159
_{10} is
decimal 159; 159
_{16} is hexadecimal 159 which is equal to
345
_{10}. Some authors prefer a text subscript, such as
159
_{decimal} and 159
_{hex}.
In linear text systems, such as those used in most computer
programming environments, a variety of methods have arisen:
 In URLs, character codes are written as
hexadecimal pairs prefixed with
%
:
http://www.example.com/name%20with%20spaces
where
%20
is the space (blank) character (code value 20 in
hex, 32 in decimal).
 In XML and XHTML,
characters can be expressed as hexadecimal numeric character references
using the notation
ode;
, where
code is the 1 to 6digit hex number assigned to the
character in the Unicode standard. Thus
’
represents the curled right single quote
(Unicode value 2019 in hex, 8217 in decimal).
 Color references in HTML and CSS can be
expressed with six hexdigits (two each for the red, green, and blue
components, in that order) prefixed with
#
: white, for
example, is represented #FFFFFF
. CSS allows
3hexdigit abbreviations with one hexdigit per component: #FA3
abbreviates #FFAA33 (a golden orange).
 *nix (UNIX and related) shells, and
likewise the C programming
language, which was designed for UNIX (and the syntactical
descendants of C) use the prefix
0x
for numeric
constants represented in hex: 0x5A3
. Character and
string constants may express character codes in hexadecimal with
the prefix \x
followed by two hex digits:
'\x1B'
represents the Esc control character;
"\x1B[0m\x1B[25;1H"
is a string containing 11
characters (plus a trailing NUL to mark the end of the string) with
two embedded Esc characters. The string
"\x1B[0m\x1B[25;1H"
specifies the character sequence
Esc [ 0 m Esc [ 2 5 ; 1 H Nul. These are the escape
sequences used on an ANSI terminal
that reset the character set and color, and then move the cursor to
line 25. To output an integer as hexadecimal with the printf function family, the format conversion code
%X
or %x
is used.
 In the Unicode standard, a character
value is represented with
U+
followed by the hex
value: U+20AC
is the Euro
sign (€).
 In MIME (email extensions) quotedprintable encoding, characters that
cannot be represented as literal ASCII characters are represented
by their codes as two hexadecimal digits (in ASCII) prefixed by an
equal to sign
=
, as in Espa=F1a
to send "España" (Spain). (Hexadecimal F1, equal to decimal 241, is
the code number for the lower case n with tilda in the ISO/IEC
88591 character set.)
 In Intelderived assembly
languages, hexadecimal is indicated with a suffixed H
or h:
FFh
or 05A3H
. Some
implementations require a leading zero when the first hexadecimal
digit character is not a decimal digit: 0FFh
 Other assembly languages (6502, AT&T,
Motorola), Pascal, Delphi, some versions of
BASIC (Commodore) and Forth use
$
as a
prefix: $5A3
.
 Some assembly languages (Microchip) use the notation
H'ABCD'
(for ABCD_{16}).
 Ada and VHDL enclose hexadecimal numerals in based "numeric
quotes":
16#5A3#
 Verilog represents hexadecimal constants
in the form
8'hFF
, where 8 is the number of bits in
the value and FF is the hexadecimal constant.
 Modula 2 and some other languages use #
as a prefix:
#05A3
 The Smalltalk programming language
uses the prefix
16r
: 16r5A3
 Postscript
indicates hex with prefix
16#
: 16#5A3
.
Binary data (such as image pixels) can be
expressed as unprefixed consecutive hexadecimal pairs:
AA213FD51B3801043FBC
...
 Common Lisp use the prefixes
#x
and #16r
.
 QuickBASIC, FreeBASIC and Visual
Basic prefix hexadecimal numbers with
&H
:
&H5A3
 BBC BASIC and Locomotive BASIC use
&
for
hex. BBC BASIC programs are not fully portable to Microsoft BASIC
(without modification) since the latter takes &
to
prefix octal values. (Microsoft BASIC
primarily uses &O
to prefix octal, and it uses
&H
to prefix hexadecimal, but the ampersand alone
yields a default interpretation as an octal prefix.
 TI89 and 92 series uses a
0h
prefix: 0h5A3
 Notations such as
X'5A3'
are sometimes seen, such
as in PL/I. This is the most common format for
hexadecimal on IBM mainframes (zSeries) and
midrange computers (iSeries) running
traditional OS's (zOS, zVSE, zVM, TPF, OS/400), and is used in
Assembler, PL/1, Cobol, JCL, scripts, commands and other places.
This format was common on other (and now obsolete) IBM systems as
well.
 Donald Knuth introduced the use of
a particular typeface to represent a particular radix in his book
The TeXbook. Hexadecimal representations are written there
in a typewriter typeface: 5A3
Bruce A.
Martin's hexadecimal notation proposal
There is no universal convention to use lowercase or uppercase for
the letter digits, and each is prevalent or preferred in particular
environments by community standards or convention.
The choice of the letters
A through
F to
represent the digits above nine was not universal in the early
history of computers. During the 1950s, some installations favored
using the digits 0 through 5 with a
macron
character ("¯") to indicate the values 1015. Users of
Bendix G15 computers used the letters
U through
Z.
Bruce
A. Martin of
Brookhaven
National Laboratory considered the choice of AF "ridiculous" and in
1968 proposed in a letter to the editor of the CACM an entirely new set of
symbols based on the bit locations, which did not gain much
acceptance.
Verbal and digital representations
Not only are there no digits to represent the quantities from ten
to fifteen—so letters are used as a substitute—but most
Western European languages also lack a
nomenclature to name hexadecimal numbers. "Thirteen" and "fourteen"
are
decimalbased, and even though English
has names for several nondecimal powers:
pair for the first
binary power;
score for the first
vigesimal power;
dozen,
gross, and
great gross for the first three
duodecimal powers. However, no English name
describes the hexadecimal powers (corresponding to the decimal
values 16, 256, 4096, 65536, ...). Some people read hexadecimal
numbers digit by digit like a phone number: 4DA is "fourdeeeh".
However, the letter 'A' sounds similar to eight, 'C' sounds similar
to three, and 'D' can easily be mistaken for the 'ty' suffix: Is it
4D or forty? Other people avoid confusion by using the
NATO phonetic alphabet: 4DA is
"fourdeltaalfa". Similarly, some use the
Joint Army/Navy Phonetic
Alphabet ("fourdogable"), or a similar ad hoc system.
Hexadecimal fingercounting scheme.
Systems of counting on (digits) have been devised for both binary
and hexadecimal.
Arthur C. Clarke suggested using each finger as an
on/off bit, allowing finger counting from zero to 1023 on ten
fingers. Another system for counting up to FF (255) is illustrated
on the right; it seems to be an extension of an existing system for
counting in twelves (dozens and grosses), that is common in South
Asia and elsewhere.
Signs
The hexadecimal system can express negative numbers the same way as
in decimal: –2A to represent –42 and so on.
However, some prefer instead to express the exact bit patterns used
in the
processor and consider hexadecimal values
best handled as
signed
values. This way, the negative number –42 can be written as
FFFF FFD6 in a 32bit
CPU
register, as C228 0000 in a 32bit
FPU register or
C045 0000 0000 0000 in a 64bit FPU register
(assuming certain representation schemes,
twoscomplement in the 32bit nonFPU
instance and
signmagnitude in the
FPU instances.)
Real numbers
As with other numeral systems, the hexadecimal system can be used
to represent
rational numbers,
although
recurring digits are
common since sixteen (10h) has only a single prime factor
(two):

=

0.8 

=

0.2AAAAAAAA... 

=

0.1999999999... 

=

0.1249249249... 

=

0.5555555555... 

=

0.2492492492... 

=

0.1745D1745D... 

=

0.1111111111... 

=

0.4 

=

0.2 

=

0.1555555555... 

=

0.1 

=

0.3333333333... 

=

0.1C71C71C71... 

=

0.13B13B13B1... 

=

0.0F0F0F0F0F... 
For any base, 0.1 (or "1/10") is always equivalent to one divided
by the representation of that base value in its own number system:
Counting in base 3 is 0, 1, 2, 10 (three). Thus, whether dividing
one by two for
binary or
dividing one by sixteen for hexadecimal, both of these fractions
are written as
0.1
. Because the radix 16 is a
perfect square (4²), fractions expressed in
hexadecimal have an odd period much more often than decimal ones,
and there are no
cyclic numbers (other
than trivial single digits). Recurring digits are exhibited when
the denominator in lowest terms has a
prime
factor not found in the radix; thus, when using hexadecimal
notation, all fractions with denominators that are not a
power of two result in an infinite string of
recurring digits (such as thirds and fifths). This makes
hexadecimal (and binary) less convenient than
decimal for representing rational numbers since a
larger proportion lie outside its range of finite
representation.
All rational numbers finitely representable in hexadecimal are also
finitely representable in decimal,
duodecimal and
sexagesimal: that is, any hexadecimal number
with a finite number of digits has a finite number of digits when
expressed in those other bases. Conversely, only a fraction of
those finitely representable in the latter bases are finitely
representable in hexadecimal: That is, decimal 0.1 corresponds to
the infinite recurring representation 0.199999999999... in
hexadecimal. However, hexadecimal is more efficient than bases 12
and 60 for representing fractions with powers of two in the
denominator (e.g., decimal one sixteenth is 0.1 in hexadecimal,
0.09 in duodecimal, 0;3,45 in sexagesimal and 0.0625 in
decimal).
Decimal base
Prime factors of the base: 2, 5

Hexadecimal
base
Prime factors of the base: 2

Fraction 
Prime factors
of the denominator

Positional representation 
Positional representation 
Prime factors
of the denominator

Fraction 
1/2 
2 
0.5 
0.8 
2 
1/2 
1/3 
3 
0.3333... =
0. 
0.5555... =
0. 
3 
1/3 
1/4 
2 
0.25 
0.4 
2 
1/4 
1/5 
5 
0.2 
0. 
5 
1/5 
1/6 
2, 3 
0.1 
0.2 
2, 3 
1/6 
1/7 
7 
0. 
0. 
7 
1/7 
1/8 
2 
0.125 
0.2 
2 
1/8 
1/9 
3 
0. 
0. 
3 
1/9 
1/10 
2, 5 
0.1 
0.1 
2, 5 
1/A 
1/11 
11 
0. 
0. 
B 
1/B 
1/12 
2, 3 
0.08 
0.1 
2, 3 
1/C 
1/13 
13 
0. 
0. 
D 
1/D 
1/14 
2, 7 
0.0 
0.1 
2, 7 
1/E 
1/15 
3, 5 
0.0 
0. 
3, 5 
1/F 
1/16 
2 
0.0625 
0.1 
2 
1/10 
1/17 
17 
0. 
0. 
11 
1/11 
1/18 
2, 3 
0.0 
0.0 
2, 3 
1/12 
1/19 
19 
0. 
0.0 
13 
1/13 
1/20 
2, 5 
0.05 
0.0 
2, 5 
1/14 
1/21 
3, 7 
0. 
0. 
3, 7 
1/15 
1/22 
2, 11 
0.0 
0.0 
2, B 
1/16 
1/23 
23 
0. 
0.0 
17 
1/17 
1/24 
2, 3 
0.041 
0.0 
2, 3 
1/18 
1/25 
5 
0.04 
0.0 
5 
1/19 
1/26 
2, 13 
0.0 
0.0 
2, B 
1/1A 
1/27 
3 
0. 
0. 
3 
1/1B 
1/28 
2, 7 
0.03 
0.0 
2, 7 
1/1C 
1/29 
29 
0. 
0. 
1D 
1/1D 
1/30 
2, 3, 5 
0.0 
0.0 
2, 3, 5 
1/1E 
1/31 
31 
0. 
0. 
1F 
1/1F 
1/32 
2 
0.03125 
0.08 
2 
1/20 
1/33 
3, 11 
0. 
0. 
3, B 
1/21 
1/34 
2, 17 
0.0 
0.0 
2, 11 
1/22 
1/35 
5, 7 
0.0 
0. 
5, 7 
1/23 
1/36 
2, 3 
0.02 
0.0 
2, 3 
1/24 
Algebraic irrational number 
In decimal 
In Hexadecimal 
√2 (the
length of the diagonal of a unit square) 
1.41421356237309... (≈ 1.414) 
1.6A09E667F3BCD... (≈ 1.6A) 
√3 (the
length of the diagonal of a unit cube, or twice
the height of an equilateral triangle of unit
side) 
1.73205080756887... (≈ 1.732) 
1.BB67AE8584CAA... (≈ 1.BB) 
√5 (the
length of the diagonal of a 1×2 rectangle) 
2.2360679774997... (≈ 2.236) 
2.3C6EF372FE95... (≈ 2.3C) 
φ (phi, the
golden ratio = ) 
1.6180339887498... (≈ 1.618) 
1.9E3779B97F4A... (≈ 1.9E) 
Transcendental irrational number 
In decimal 
In Hexadecimal 
π (pi, the
ratio of circumference to diameter) 
3.1415926535897932384626433
8327950288419716939937510...
(≈ 3.1416) 
3.243F6A8885A308D313198A2E0
3707344A4093822299F31D008...
(≈ 3.243F) 
e
(the base of the natural
logarithm) 
2.7182818284590452...
(≈ 2.718) 
2.B7E151628AED2A6B...
(≈ 2.B7E) 
τ (the Thue–Morse
constant) 
0.412454033640... 
0.6996 9669 9669 6996 ... 
Number 
In decimal 
In Hexadecimal 
γ
(the limiting difference between the harmonic series and the
natural logarithm) 
0.5772156649015328606...
(≈ 0.577) 
0.93C467E37DB0C7A4D1B...
(≈ 0.93C) 
Powers
Possibly the most widely used powers, powers of two, are easier to
show using the 16th base. The first sixteen powers of two are shown
below.
2^{x} 
value 
2^{0} 
1 
2^{1} 
2 
2^{2} 
4 
2^{3} 
8 
2^{4} 
10_{hex} 
2^{5} 
20_{hex} 
2^{6} 
40_{hex} 
2^{7} 
80_{hex} 
2^{8} 
100_{hex} 
2^{9} 
200_{hex} 
2^{A} (2^{10_{dec}}) 
400_{hex} 
2^{B} (2^{11_{dec}}) 
800_{hex} 
2^{C} (2^{12_{dec}}) 
1000_{hex} 
2^{D} (2^{13_{dec}}) 
2000_{hex} 
2^{E} (2^{14_{dec}}) 
4000_{hex} 
2^{F} (2^{15_{dec}}) 
8000_{hex} 
2^{10} (2^{16_{dec}}) 
10000_{hex} 
Since four squared is sixteen, powers of four have an even easier
relation:
4^{x} 
value 
4^{0} 
1 
4^{1} 
4 
4^{2} 
10_{hex} 
4^{3} 
40_{hex} 
4^{4} 
100_{hex} 
4^{5} 
400_{hex} 
4^{6} 
1000_{hex} 
4^{7} 
4000_{hex} 
4^{8} 
10000_{hex} 
This also makes
tetration easier
when using two and four since
^{3}2 = 10
_{hex},
^{4}2 = 10000
_{hex} and
^{5}2 =
10000000000
_{hex}.
Binary conversion
Most computers manipulate binary data, but it is difficult for
humans to work with the large number of digits for even a
relatively small binary number. Although most humans are familiar
with the base 10 system, it is much easier to map binary to
hexadecimal than to decimal because each hexadecimal digit maps to
a whole number of bits (4
_{10}).This example converts
1111
_{2} to base ten. Since each
position in a binary numeral can contain
either a 1 or 0, its value may be easily determined by its position
from the right:
 0001_{2} = 1_{10}
 0010_{2} = 2_{10}
 0100_{2} = 4_{10}
 1000_{2} = 8_{10}
Therefore:
1111_{2} 
= 8_{10} + 4_{10} + 2_{10} +
1_{10} 

= 15_{10} 
With surprisingly little practice, mapping 1111
_{2} to
F
_{16} in one step becomes easy: see table in
Uses. The advantage of using hexadecimal
rather than decimal increases rapidly with the size of the number.
When the number becomes large, conversion to decimal is very
tedious. However, when mapping to hexadecimal, it is trivial to
regard the binary string as 4digit groups and map each to a single
hexadecimal digit.
This example shows the conversion of a binary number to decimal,
mapping each digit to the decimal value, and adding the results.
01011110101101010010_{2} 
= 262144_{10} + 65536_{10} + 32768_{10}
+ 16384_{10} + 8192_{10} + 2048_{10} +
512_{10} + 256_{10} + 64_{10} +
16_{10} + 2_{10} 

= 387922_{10} 
Compare this to the conversion to hexadecimal, where each group of
four digits can be considered independently, and converted
directly:
01011110101101010010_{2} 
= 
0101_{ } 
1110_{ } 
1011_{ } 
0101_{ } 
0010_{2} 

= 
5 
E 
B 
5 
2_{16} 

= 
5EB52_{16} 
The conversion from hexadecimal to binary is equally direct.
The
octal system can also be useful as a tool
for people who need to deal directly with binary computer data.
Octal represents data as three bits per character, rather than
four.
Converting from other bases
Divisionremainder in source base
As with all bases there is a simple
algorithm for converting a representation of a
number to hexadecimal by doing integer division and remainder
operations in the source base. Theoretically this is possible from
any base but for most humans only decimal and for most computers
only binary (which can be converted by far more efficient methods)
can be easily handled with this method.
Let d be the number to represent in hexadecimal, and the series
h
_{i}h
_{i1}...h
_{2}h
_{1} be the
hexadecimal digits representing the number.
 i := 1
 h_{i} := d mod 16
 d := (dh_{i}) / 16
 If d = 0 (return series h_{i}) else increment i and go
to step 2
"16" may be replaced with any other base that may be desired.
The following is a
JavaScript
implementation of the above algorithm for converting any number to
a hexadecimal in String representation. Its purpose is to
illustrate the above algorithm. To work with data seriously
however, it is much more advisable to work with
bitwise operators.
function toHex(d) {
var r = d % 16;
var result;
if (dr == 0)
result = toChar(r);
else
result = toHex( (dr)/16 ) + toChar(r);
return result;
}
function toChar(n) {
const alpha = "0123456789ABCDEF";
return alpha.charAt(n);
}
Addition and multiplication
It is also possible to make the conversion by assigning each place
in the source base the hexadecimal representation of its place
value and then performing multiplication and addition to get the
final representation.I.e. to convert the number B3AD to decimal one
can split the conversion into D (13
_{10}), A
(10
_{10}), 3 (3
_{10}) and B (11
_{10}) then
get the final result bymultiplying each decimal representation by
16
^{p}, where 'p' is the corresponding position from right
to left, beginning with 0. In this case we have 13*(16
^{0})
+ 10*(16
^{1}) + 3*(16
^{2}) + 11*(16
^{3}),
which is equal 45997 in the decimal system.
Tools for conversion
Most modern computer systems with
graphical user interfaces provide a
builtin calculator utility, capable of performing conversions
between various radixes, generally including hexadecimal.
In
Microsoft Windows, the
Calculator utility can be set to
scientific calculator mode,
which allows conversions between radix 16 (hexadecimal), 10
(decimal), 8 (
octal) and 2 (
binary); the bases most commonly used
by programmers. In Scientific Mode, the onscreen
numeric keypad includes the hexadecimal
digits A through F which are active when "Hex" is selected. The
Windows Calculator however only supports integers.
Cultural
Etymology
The word
hexadecimal is composed of
hexa,
derived from the
Greek έξ (hex) for
"six", and
decimal, derived from the
Latin for "tenth". Webster's Third New International
online derives "hexadecimal" as an alteration of the allLatin
"sexadecimal" (which appears in the earlier Bendix documentation).
The earliest date attested for "hexadecimal" in MerriamWebster
Collegiate online is 1954, placing it safely in the category of
international
scientific vocabulary (ISV). It is common in ISV to mix Greek
and Latin
combining forms freely. The
word "
sexagesimal" (for base 60) retains
the Latin prefix.
Donald Knuth has
pointed out that the etymologically correct term is "senidenary",
from the Latin term for "grouped by 16". (The terms "binary",
"ternary" and "quaternary" are from the same Latin construction,
and the etymologically correct term for "decimal" arithmetic is
"denary".) Schwartzman notes that the expected form from usual
Latin phrasing would be "sexadecimal", but computer hackers would
be tempted to shorten that word to "sex". The
etymologically proper
Greek term would be
hexadecadic
(although in
Modern Greek
decahexadic (δεκαεξαδικός) is more commonly used).
Common patterns and humor
Hexadecimal is sometimes used in programmer jokes because certain
words can be formed using only hexadecimal digits. Some of these
words are "dead", "beef", "babe", and with appropriate
substitutions "c0ffee". Since these are quickly recognizable by
programmers, debugging setups sometimes initialize memory to them
to help programmers see when something has not been
initialized.Some people add an H after a number if they want to
show that it is written in hexadecimal. In older Intel
assembly syntax, this is sometimes the
case."
Hexspeak" may be the forerunner of
the modern web parlance of "
1337speak"
An example is the
magic
number in FAT
MachO files and
java class file
structure, which is "
CAFEBABE
". Singlearchitecture
MachO files have the magic number "
FEEDFACE
" at their
beginning. "
DEADBEEF
" is
sometimes put into uninitialized memory. Microsoft Windows XP
clears its locked index.dat files with the hex codes:
"
0BADF00D
". The Visual C++ remote debugger uses
"
BADCAB1E
" to denote a broken link to the target
system.
Two common bit patterns often employed to test hardware are
01010101
and
10101010
(their
corresponding hex values are 55h and AAh, respectively). The reason
for their use is to alternate between
off ('0') to
on ('1') or vice versa when switching between these two
patterns. These two values are often used together as
signatures in critical PC system sectors (e.g., the hex
word,
0xAA55
which on
littleendian systems is 55h followed by AAh,
must be at the end of a valid
Master
Boot Record).
The following table shows a joke in hexadecimal:
3x12=36
2x12=24
1x12=12
0x12=18
The first three are interpreted as multiplication, but in the last,
"0x" signals Hexadecimal interpretation of 12, which is 18.
Another joke based on the use of a word containing only letters
from the first six in the alphabet (and thus those used in
hexadecimal) is...
 If only DEAD people understand hexadecimal, how many people
understand hexadecimal?
In this case, DEAD refers to a hexadecimal number (57005 base 10),
not the state of being no longer alive. Obviously, DEAD normally
should not be written in allcaps (as in the preceding) as it makes
it stand out, thus ruining the riddle.
A
Knuth reward check is one
hexadecimal dollar, or $2.56.
Primary numeral system
Similar to
dozenal
advocacy,there have been occasional attempts to promote
hexadecimal as the preferred numeral system. These attempts
usuallypropose pronunciation and/or symbology. Sometimes the
proposal unifies standardmeasures so that they are multiples of
16.
An example of unifying standard measures is
Hexadecimal time which subdivides a day by
16 so that there are 16 "hexhours" in a day.
Key to number base notation
Simple key for notations used in article:
Full Text Notation 
Abbreviation 
Number Base 
binary 
bin 
2 
octal 
oct 
8 
decimal 
dec 
10 
hexadecimal 
hex 
16 
See also
References
 Some of C's syntactical descendants are C++, C#, Java, JavaScript, and Windows
PowerShell
 Donald E. Knuth. The TeXbook (Computers and Typesetting, Volume
A). Reading, Massachusetts: AddisonWesley, 1984. ISBN
0201134489. The source code of the book in TeX (and a required
set of macros [1]) is available online on CTAN.
 Letters to the editor: On binary notation, Bruce A.
Martin, Associated Universities Inc., Communications of the ACM,
Volume 11, Issue 10 (October 1968) Page: 658
 Knuth, Donald. (1969). Donald Knuth, in The Art of Computer
Programming, Volume 2. ISBN 0201038021. (Chapter 17.)
 Schwartzman, S. (1994). The Words of Mathematics: an
etymological dictionary of mathematical terms used in English.
ISBN 0883855119.