43

While we're all accustomed to using * as the multiplication symbol (not to mention other esoteric meanings in programming, command-lines, etc.) it is of course not actually the everyday standard symbol for multiplication. And yet, there is no × key on any normal keyboard.

Given the lack of × I can see why * was the next-best choice, but why is it there at all? What did it mean originally and/or what use did it have?

Every 'standard' "IBM-PC" type keyboard I can remember using had this symbol. The C64 had it. In any case it seems to go way back to at least the early 80s, I'd bet earlier.

user3840170
  • 23,072
  • 4
  • 91
  • 150
StayOnTarget
  • 3,856
  • 1
  • 24
  • 41
  • 12
    Because it is part of the ASCII character set? – user3840170 Sep 05 '20 at 13:05
  • 62
    It was used in printed text (e.g. to mark footnotes or marginal notes) for hundreds of years before ASCII was invented. – alephzero Sep 05 '20 at 13:08
  • 14
    When Fortran was invented in the 1950s, asterisk was already available on punched cards and teletypes. This was the closest symbol to the multiplication sign. Likewise, there was a forward slash, which was the closest symbol to the division sign. – Walter Mitty Sep 05 '20 at 13:52
  • 3
    Since this is retrocomputing: the Flexowriter had a multiplication sign, which was used for multiplication n Algol 60. – dave Sep 05 '20 at 14:12
  • 1
    Wikipedia mentions plenty of uses. Consider the Roger Maris 61* home run record was in 1961 and ASCII wasn't standardized until 1963. – Kelvin Sherlock Sep 05 '20 at 16:41
  • The * was (and is) the correct symbol for multiplication in most programming languages, just as / is the correct symbol for division. – jamesqf Sep 05 '20 at 21:24
  • 1
    @jamesqf but surely the language designer would have chosen the more familiar x symbol had it been available – StayOnTarget Sep 05 '20 at 21:25
  • 10
    Another option would be which I think is much more common than × in higher mathematics – Mark Sep 06 '20 at 09:34
  • 4
    @UuDdLrLrSs Presumably you don't mean use the letter x for multiplication: apart from x, y and z being the "obvious" variables for equations, parsing would be a nightmare (a=b*c multiplies b and c. Does a=bxc mean that, or copy the variable bxc?). Even if you made the ASCII character for * (42, 0x2a) look like x (so the computer could tell the difference), humans would still get confused. – TripeHound Sep 06 '20 at 13:48
  • @TripeHound no, presumably there would have been some other ASCII (or EBCDIC or whatever) code for the dedicated multiplication symbol – StayOnTarget Sep 06 '20 at 14:04
  • 2
    Out of the three different keyboards I have around me, two have the × sign in the numpad, and just the third one has * there. (These are all USB, so not a representative sample of early PC keyboards.) Of course that doesn't mean the operating system would print a × when the key is pressed, but you did mention keyboards explicitly. – ilkkachu Sep 07 '20 at 09:13
  • 10
    "it is of course not actually the correct symbol for multiplication" Why not? In mathematics we use a floating dot, an asterisk is close enough. Floating dots can be hard to read in some fonts. – Mast Sep 07 '20 at 09:23
  • 2
    Some people used to call the asterisk the "Nathan Hale" symbol, from "I regret that I have but one asterisk for my country." – Robert Columbia Sep 07 '20 at 14:14
  • 5
    @alephzero Not only hundreds, but thousands. The asterisks can be found in ancient Greek, Sumerian and Hebrew texts and can be traced back to ice age cave paintings. Its a freakishly old symbol. – Polygnome Sep 07 '20 at 15:46
  • @user3840170 pretty sure the earliest computer keyboards predated ascii? – StayOnTarget Sep 07 '20 at 15:47
  • 1
    Note that if the keyboard were not copied from typewriters there would be no reason for it to be arranged with the highly-illogical QWERTY layout. QWERTY was actually invented to make the keyboard hard to use, as more "logical" schemes led to the keys jamming up while typing. – Hot Licks Sep 07 '20 at 21:45
  • 1
    In your response to TripeHound's comment, you missed his point that, even if × had its own separate ASCII/EBCDIC/whatever code to allow the computer to distinguish it from the letter x, it would still be difficult for a human reading them to make that distinction. Distinguishing an asterisk from the letter x is much easier. – Dave Sherohman Sep 08 '20 at 07:50
  • 1
    @HotLicks Not necessarily specifically to make it hard to use, just so that the most common keys weren't adjacent. – Radvylf Programs Jan 25 '21 at 00:25
  • 2
    @HotLicks: The keyboard layout was chosen to minimize the number of common English digraphs which would appear on consecutive type bars when using a typewriter which used separate groups of type bars for the upper two rows and the lower two rows. Evidence of this is found in an earlier typewriter patent, whose bottom row started ZCXV; the most common English digraph there was SC, as found in "science". Swapping X and C fixes that; the most common remaining digraph is ZA, as found in "pizza" and "zany", but that occurs much less often than SC. – supercat Apr 05 '21 at 23:04

5 Answers5

80

Keyboards have an asterisk because typewriters did, long before computers existed.

Typewriters, particularly mechanical ones, typically made a number of compromises to reduce the number of keys required. For example, many didn‘t have 0 or 1, and people used O and I or l instead. Likewise, × wasn’t needed since x could be used instead, or · (. half-up). The asterisk was used a lot (e.g. for footnotes, section separators, etc.), and no alphabetic character could replace it, so it was included in many popular keyboards (see for example Hemingway’s Underwood Portable or the Underwood 5).

Since it featured on most typewriters, it ended up being included in some of the character sets used for communications, and in early computer keyboards too (they started off as typewriters), and then in ASCII (via said communications character sets). See Why are the symbols on the number keys of PC & Mac keyboards different to ASCII keyboards? for details. By the time ASCII was standardised, * had taken on its mathematical meaning; it’s included in the mathematical symbols (p. 213).

Stephen Kitt
  • 121,835
  • 17
  • 505
  • 462
  • Assuming the keyboard designers who copied typewriters thought * had some value - what was it? I rarely see it used in a way that another symbol wouldn't be a better choice. (Times sign, or perhaps bullet marks...) – StayOnTarget Sep 05 '20 at 14:12
  • I looked at a couple of photos of actual typewriter keyboards, including a fairly modern Smith-Corona, and didn't see an asterisk. – dave Sep 05 '20 at 14:22
  • 3
    @another-dave the Underwood 5 had it, and that was one of the most popular typewriters. – Stephen Kitt Sep 05 '20 at 14:32
  • @UuDdLrLrSs - the 'value' in putting * on computer keyboards was that it was already necessary for existing computer software. – dave Sep 05 '20 at 14:49
  • 4
    It was actually more common to use a lower case L l in place of 1. That's why in some variations of the Courier font the two characters look identical. –  Sep 05 '20 at 14:55
  • @Ross I’ll take your word for it! I was taught to touch-type using 1 or I on typewriters, but I can well imagine that that wasn’t universal. – Stephen Kitt Sep 05 '20 at 15:05
  • 4
    @UuDdLrLrSs pre-computing, and still today, asterisk is commonly used for footnotes. It has other uses as well. – Wayne Conrad Sep 05 '20 at 16:11
  • Some of the mechanical keyboards didn't even have a 1. You had to use l. The ones that didn't have an asterisk were a pain, You had to type X, backspace and then - and the - didn't line up with the cross of the X. – cup Sep 05 '20 at 19:25
  • @RossRidge It depends a lot on country/Language. In Geman(y) a 1 was present on almost all keyboards, only 0 was replaced by an o. Also, if there really was no 1 (like due using a US typewriter) , the upper case I was used. Never a lower case L . – Raffzahn Sep 05 '20 at 20:44
  • 1
    @Raffzahn I've got two Hermes Baby typewriters, one with a US layout and one with a French layout. They both lack 1 and 0 using l and O instead. Some, but not all¹, of this model had an asterisk. A lot of inter-language variation even for the same model. ¹Swedish layout – Alex Hajnal Sep 06 '20 at 02:54
  • 3
    Strictly speaking, the asterisk character is not needed either. On Cyrillic typewriters it was typically produced as x-backspace--. – Leo B. Sep 06 '20 at 06:55
  • @AlexHajnal When I'm back in Vilshofen I'll take some photos of 1910 to 1950 typewriters. – Raffzahn Sep 06 '20 at 08:17
  • Lithuanian layout also had no asterisk. Hold space depressed, press x and then press - was the standard way to get it. Holding the space bar depressed prevented the carriage from moving while doing this. – h22 Sep 06 '20 at 18:10
  • 1
    Early typewriters only had uppercase letters. On a typewriter with only uppercase, I and O are the natural substitutes for 1 and 0. On a typewriter with lowercase, typing I and O would require the shift key, making it awkward to type numbers like I2O, especially given that many typewriters' shift-key mechanisms weren't designed to operate especially quickly or easily. Thus, typewriters added a "0" key, while typists started using the now-available "l" for 1. – supercat Sep 07 '20 at 20:29
  • 1
    @supercat that would explain variations even in the second half of the 20th century — I learned on an AZERTY keyboard where digits are shifted, so I2O is easier than l20. I’ve also seen quite a lot of typed output with o instead of O for digits, which avoids the problem on QWERTY keyboards lacking 0 (or with typists more used to using the letter than the digit). – Stephen Kitt Sep 08 '20 at 06:56
73

Computer terminal keyboards needed to reproduce the symbols available on punched cards and paper tape. In the US, punched cards dominated the data-processing industry (communications uses tended to paper tape).

IBM punched card codes in particular were significant in the industry.

The IBM 026 keypunch (and its replacement the 029) had an asterisk. By the time online keyboards became interesting, the asterisk was already in use in various programming contexts, and therefore was still needed.

The 026 had different character sets (and encoding) available, but asterisk was common to most (all?) of the configurations. See this page for examples, but here is the FORTRAN set:

+-0123456789ABCDEFGHIJKLMNOPQR/STUVWXYZ =' .) $* ,(

You can regard that scanty set as the minimum requirement for any subsequent computer keyboard.

But why was there an asterisk on 026/029 card punches?

This authoritative document on coded character sets says, on page 66, that asterisk was added to IBM punch card codes 'somewhere around 1932' and was used for cheque protection. This was a 39-character set: alphanumerics, minus sign, ampersand, asterisk.

Therefore, the need for asterisk on data-processing equipment was settled long before stored-program digital computers came on the scene. And of course, if the processing equipment can use a character, it needs to be on the keyboards.

dave
  • 35,301
  • 3
  • 80
  • 160
  • 3
    Cool! That makes the asterisk (along with the minus sign for negative numbers and ampersand for names, such as Mr & Mrs Jones) one of the oldest special characters! – 00prometheus Sep 05 '20 at 22:00
  • 1
    This doesn't answer why × wasn't included for multiplication at the same time that + was included for addition. – Ian Kemp Sep 05 '20 at 22:27
  • 10
    To some extent the argument is circular: programming languages use whatever chars I/O devices have; I/O devices choose character sets that programming languages use. But codepoints aren't free. In particular, it is desirable that a printer can print all characters. + was added when the character set was extended to 48 chars. 48 fits with existing 240-character chain printers; 49 does not (see p70 in the coded char sets doc linked above). Adding ×would have to displace something else. Apparently, using * for multiplication was the better tradeoff. – dave Sep 06 '20 at 00:58
  • 3
    @IanKemp it might have been added for explicitly listing positive numbers, not for addition. – Ángel Sep 06 '20 at 02:26
  • 2
    Kudos to Dave as usual, but if I could throw in a couple more bits. The Wp article on "Six-bit character code" shows that numerous pre-ASCII character codes used for computers had , while the article on "Baudot code" shows that it had less significance for communication. I think that John Savard's page at http://www.quadibloc.com/crypto/mi060103.htm is also interesting, as are his observations on keyboards. As the archetypal ALGOL machines, the Burroughs Large Systems 6-bit character codes had both and the multiplication symbol × (as of course did keyboards for interactive APL etc.). – Mark Morgan Lloyd Sep 06 '20 at 07:52
  • Note in passing that the forward slash is located in the alphabet, between the R and the S. This made alphanumeric sorting even more fun! – Walter Mitty Sep 06 '20 at 13:14
  • The afore-linked char sets book was an eye-opener to me, particularly the number of things that get debated to come up with character set definitions. The ASCII-63, -65, -67 flip-flopping is well worth a read! – dave Sep 06 '20 at 19:22
  • cheque protection – TaW Sep 08 '20 at 07:03
  • 1
    It's also possible that, if you wanted to write 10 times 10, you would simply have typed 10x10, with a letter x for the times character. That only becomes a problem when it needs to be machine readable, which didn't happen until later, when the character set was already established. – N. Virgo Sep 08 '20 at 11:18
  • I don't think this answers the question. The answer for computers is "because typewriters had them". But why did typewriters have the asterisk? Exhibit A: from the 1920s. – JeremyP Sep 11 '20 at 10:46
  • @JeremyP -- no, my answer is actually "because punched cards had them"; computers were programmed with punched cards before they had keyboards attached. And why punched cards had an asterisk is covered in the last 2 paragraphs of my answer. Perhaps you meant to post this comment for Stephen Kitt's answer? – dave Sep 11 '20 at 11:29
  • 7
    Cheque protection is the plainest answer. It's still de riguer to right-justify he amount on a cheque using asterisks as fill. Business machines were printing cheques long before computers. I remember getting a certified cheque from the bank that was printed using a mechanical device in which the teller would set the amount using sliders for each digit and asterisks for the rest. No computers involved (our passbooks were updated in longhand, too). – Stephen M. Webb Sep 11 '20 at 20:56
  • 1
    You're likely right - that's been published as the reason for adding the asterisk to the numeric-only cards. – dave Sep 11 '20 at 23:02
18

The reason to use * instead of × is disambiguation. × looks very similar to x now, even more so in the early days of computing, before the laser printer became ubiquitous and you needed typesetting software and a printing press to produce an × that was distinguishable from an x.

According to this post, we can blame Fortran:

While it is now common practice to use an asterisk for multiplication, I don’t think that was the case before the FORTRAN programming language was developed at IBM by John Backus and his team.

Presumably, the asterisk was chosen — presumably because it was the non-alphanumeric symbol that most-closely resembled the customary × symbol that denoted multiplication, whereas the letter X could not be used, since FORTRAN used letters of the alphabet for symbolic variable names of variables and unknowns. Since there were no superscripts (nor subscripts) available, so exponentiation was indicated with a double-asterisk: ** (and parentheses were used to surround subscripts). Furthermore, the letter “E” was used (following a string of digits) to render numbers in “scientific notation”, e.g., 6.02×1023.

The asterisk has been used as a multiplication symbol for a long time:

In the old days of arithmetic, many algorithms made use of the cross of San Andres to solve division and multiplication products and proportions. It may be for that reason that in 1631, Oughtred, chose this cross as a symbol for multiplication.

It experienced great acceptance, except by the mathematicians Gottfried W. Leibniz and Isaac Newton, who did not feel completely comfortable with the symbol. Leibniz, in 1698, in one of his letters to the mathematician Johann Bernoulli, writes: “I do not like the × symbol as a symbol for multiplication since it can be mistaken for x; … I often simply relate two quantities with a point and indicate multiplication with RS · PQ.”

...

For example, the Swiss mathematician Johann Rahn, (1622-1676), used the asterisk * in his work Teutsche Algebra (1659). As well as Leibniz, who previously used a fallen C, with the open side down, in his Dissertatio of combinatorial art (1666).

Hobbes
  • 481
  • 2
  • 4
  • I wonder if Backus et al knew of the earlier usage, or if that was just a coincidence? – StayOnTarget Sep 06 '20 at 11:19
  • 1
    Perhaps, conversely, the apparent similarity of the symbol ‘×’ and the letter ‘x’ is why the former wasn't included on early typewriters, as they'd expect the typist to substitute the latter?  (In the same way that some typewriters didn't see a need to include ‘0’ or ‘1’, as ‘O’ and ‘l’ were used instead.) – gidds Sep 06 '20 at 12:59
  • Bear in mind that * would not have been used if it weren't present on the keyboards of the era. – Hot Licks Sep 06 '20 at 19:38
11

Circa 1950 Royal typerwriter. Top row of keys, second from the right. What do you see?

enter image description here

Hot Licks
  • 421
  • 2
  • 8
  • 1
    But when computer keyboards were designed, people did not have to mindlessly copy typewriter layouts. For one thing computers were clearly used for mathematics (not word processing as we think of them today) so it was a choice to continue to omit the x and include * – StayOnTarget Sep 06 '20 at 11:18
  • 11
    @UuDdLrLrSs - The first common computer keyboards were Teletypes, originally designed to replace telegraphs for distance communication between humans. – Hot Licks Sep 06 '20 at 12:32
  • 1
    'Common' might be in the eye of the beholder, but before the model 33 teletype, computers used things like IBM Typewriters and Friden Flexowriters, both as console devices, and for offline tape preparation. The teletype became popular with minicomputers and for timesharing systems because it was relatively cheap. – dave Sep 06 '20 at 19:29
  • @another-dave - Above the "8". https://www.p3oriontopsecret.com/friden-flexowriter-inputoutput-peripheral.html – Hot Licks Sep 06 '20 at 19:36
  • I wasn't saying the Flex didn't have an asterisk, I was disputing that Teletypes were the 'first' keyboards (though it depends on how you regard 'common'). – dave Sep 06 '20 at 20:56
  • @another-dave - IBM would definitely have included the asterisk. – Hot Licks Sep 06 '20 at 20:58
  • 3
    What's the ASCII code for "¢"? – Carsten S Sep 07 '20 at 12:22
  • 1
    This answer doesn't offer any explanation for the why part of the question. Contrast with this answer which also talks about typewriters but covers the why. – JBentley Sep 07 '20 at 13:29
  • by that argument keyboards shouldn't have a 1 – JCRM Sep 07 '20 at 17:47
  • @CarstenS ¢ is not part of ASCII. – mirabilos Sep 08 '20 at 16:09
-4

The asterisk was used in the 80s as a 'jolly' character for Operating System maintenance and procedures. I used the asterisk a lot when, under MS-DOS, I had to copy files or folders in particular ways. If I needed to copy only the .EXE files to a floppy disk, I'd write:

copy *.exe a:

The asterisk meant that 'all' files with an .exe extension had to be copied.

The asterisk was quite versatile! Say, for example, you wanted to copy to a floppy disk (or move, or delete) a group of files, but only those which name started with 1989_04, you could write:

copy 1989_04*.* a:

Meaning that any file starting with 1989_04 was going to be copied, and also with any extension (.*). So, if there were some .doc and some .xls, they'd be copied. If you wanted to specify only one type of extension, say .doc, then you'd write:

copy 1989_04*.doc a:

The asterisk was a much more powerful tool, these are just a few examples. Let me show you something that I still remember. Say you wanted to 'type' (list the file content on the screen) many files instead of only one at a time, you could write:

for %f in (*.*) do type %f

In this case, *.* means any file with any name (*) and any extension (.*). You could obviously replace partially or totally those 2 asterisks based on your needs.

If you open the old issues of PC Magazine that you have at home, some of which I'd love to buy, and you browse through the technical pages (usually located toward the end of the magazine and having paragraphs or tables with pink or green background), you'll find tons of other examples of commands, instructions, and codes using the asterisk. Sometimes you'll find them also in the section where the magazine staff answered readers' questions. I also added some additional examples of the use of the asterisk under MS-DOS and various info in the 'about me' section of my profile. I am basing my answer on MS-DOS because I know it, but I'm sure similar uses of the asterisk were occurring for other 80s operating systems.

In conclusion, in the 80s there were already countless uses for the asterisk in a large variety of contexts and situations, therefore, we should not be surprised if we found it on all types of keyboards.