Answer about bits and bytes

Dr. Dimitri Vulis dlv at bwalk.dm.com
Fri Apr 12 22:57:16 PDT 1996


Jim Gillogly <jim at ACM.ORG> writes:
> jim bell <jimbell at pacifier.com> writes:
> >See, I do not challenge the fact that there were plenty of data objects of
> >length other than 8-bits.  The issue is whether or not the people back then
> >actually believed that a correct, official usage of the term "byte" included
> >lengths other than 8.
>
> Reading from the PDP-10 Reference Handbook (DEC, 1971) page 2-30, we read:
>
> 	To conserve memory, it is useful to store data in less than full
> 	36-bit words.  Bytes of any length, from 1 to 36 bits, may be
> 	entered using a BYTE statement.
>
> 		BYTE (N) X,X,X
...

_The Programmer's Guide to the 1802_ (Tom Swan, Hayden Books, 1981) says the
following on p. 19:

    The eight binary digits or bits represented in Fig. 2-1 are commonly
    given the name _byte, and in this book, one byte will always equal
    eight bits. (This is a rather common convention in microcomputing, but
    a byte does not always equal eight bits in much of the published
    literature.) Some books also refer to computer "words," but, since a
    "word" is even more loosely defined than a "byte," we will refrain from
    using it as a label for binary numbers. In addition, to make things
    come out right for eight-bit computers, leading zeros are usually
    written in front of binary numbers so all numbers come out to even
    multiples of eight-bit bytes.

_Assembler Reference Manual for the Sub Workstation, Version 1.0 of
30th November 1982_ (we're talking the Motorola 68K Sun 1 here!) says:

    Many MC68000 machine instructions can operate upon byte (8-bit), word
    (16-bit), or long word (32-bit) data.

They felt it necessary to specify this in a number of places.

A very important book that anyone who programs computers should read --
Donald Knuth, _The Art of Computer Programming_ (Addison Wesley, 1973), v. 1,
p. 120, says the following about the MIX language:

    Words. The basic unit of information is a _byte. Each byte contains an
    _unspecified amount of information, but it must be capable of holding
    at least 64 distinct values. That is, we know that any number between 0
    and 63, inclusive, can be contained in one byte. Furthermore, each byte
    contains _at _most 100 distinct values. On a binary computer a byte
    must therefore be composed of six bits; on a decimal computer we have
    two digits per byte.

    Programs written in the MIX language should be written so that no more
    than sixty-four values are ever assumed for a byte. If we wish to treat
    the number 80, we should always leave two adjacent bytes for expressing
    it, even though one byte is sufficient on a decimal computer. _An
    _algorithm _in _MIX _should _work _properly _regardless _of _how _big
    _a _byte _is. Although it's quite possible to write programs which
    depend on the byte size, this is an illegal act which will not be
    tolerated; the only legitimate programs are those which would give
    correct results with all byte sizes. It is usually not hard to abide by
    these ground rule, and we will thereby find that programming a decimal
    computer isn't so different from programming a binary one after all.

    ...

    _A _computer _word _is _five _bytes _plus _a _sign. The sign position
    has only two possible values, + and -.

Give it up, Jim -- I have more ancient writings than you can shake a dynamite
stick at. :-)

---

Dr. Dimitri Vulis
Brighton Beach Boardwalk BBS, Forest Hills, N.Y.: +1-718-261-2013, 14.4Kbps






More information about the cypherpunks-legacy mailing list