OFFSET
0,1
COMMENTS
The bits 0-6 are assigned to the segments according to the "abcdefg" scheme (top, upper right, lower right, bottom, lower left, upper left, center), cf. section "Displaying letters" of the Wikipedia page (3rd column of the table). Other conventions are common in engineering (as well for the segment-to-bit correspondence as for the glyphs), see sequence A234691, the Wikipedia page and the comment after the Example for a(7).
For n > 9, each of the digits of the base-10 representation is coded in a separate group of 7 bits, for example, a(10) = a(1)*2^7 + a(0) = 831.
Alternatively, for n >= 10 one could define a(n) to represent a 7-segment variant of the characters A-Z and/or a-z, as in hexadecimal or base-64 encoding. In that case, one could also use a few more bits for additional segments, e.g., four half-diagonals to represent K, M, N, R, V, X, Z correctly and S distinctly from 5. But as mentioned on the Wikipedia page, a possible ambiguity of representations of alphabetic characters is not always an obstacle to common use, since whole words are usually readable nonetheless.
The Hamming weight A000120 of the terms of this sequence yields the count of lit segments, A010371(n) = A000120(a(n)) = A000120(A234691(n)). For that sequence, 5 other variants are in the OEIS, depending on the number of segments used to represent digits 6, 7 and 9: A063720 (6', 7', 9'), A277116 (7', 9'), A074458 (9') and A006942 (7'), where x' means that the "sans serif" variant (one segment less than here) is used for digit x. - M. F. Hasler, Jun 17 2020
LINKS
Wikipedia, Seven-segment display.
FORMULA
a(n) = a(n mod 10) + a(floor(n/10))*2^7. - M. F. Hasler, Jun 17 2020
EXAMPLE
a(7) = 39 = 2^0 + 2^1 + 2^2 + 2^5, because the digit 7 is represented as
" _ " : bit 0,
"| |" : bits 5+1,
" |" : bit 2,
and no bit 3 (bottom "_") nor 4 (lower left "|") nor 6 (central "-").
Although other glyphs do exist as well for 6, 9, 0 and maybe other digits, "7" is probably the digit where an alternate representation (without the upper left "|") is as common as the one we chose here.
PROG
(PARI) bitmap=apply(s->sum(i=1, #s=Vec(s), if(s[i]>" ", 2^(i-1))), ["000000", " 11", "22 22 2", "3333 3", " 44 44", "5 55 55", "6 66666", "777 7", "8888888", "9999 99", "AAA AAA", " bbbbb", "C CCC ", " dddd d", "E EEEE", "F FFF"]) \\ Could be extended to more alphabetical glyphs, see A234691.
apply( {A234692(n)=bitmap[n%10+1]+if(n>9, self()(n\10)<<7)}, [0..99]) \\ M. F. Hasler, Jun 17 2020
CROSSREFS
KEYWORD
nonn,base
AUTHOR
M. F. Hasler, Dec 29 2013
EXTENSIONS
Extended with hex digits (AbCdEF) to n=15 by M. F. Hasler, Dec 30 2013
a(10) and a(11) corrected thanks to Kevin Ryde, M. F. Hasler, Jun 16 2020
Definition changed for consistency with A010371, etc. by M. F. Hasler, Jun 17 2020
STATUS
approved