<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:bib="http://bibtexml.sf.net/" id="m10263">

  <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Introduction to Computer Organization</name>

  <metadata xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
  <md:version xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2.27</md:version>
  <md:created xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2001/08/08</md:created>
  <md:revised xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">2007/05/29 17:10:43.627 GMT-5</md:revised>
  <md:authorlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
      <md:author xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="dhj">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Don</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Johnson</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">dhj@rice.edu</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <md:maintainer xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="dhj">
      <md:firstname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Don</md:firstname>
      
      <md:surname xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Johnson</md:surname>
      <md:email xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">dhj@rice.edu</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">boolean arithmetic</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">clock speed</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">computer organization</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">double precision floating point</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">floating point</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">numbers on a computer</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">positional notation</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">quadruple precision floating point</md:keyword>
    <md:keyword xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">sign bit</md:keyword>
  </md:keywordlist>

  <md:abstract xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Explains how digital systems such as the computer represent numbers.  Covers the basics of boolean algebra and binary math.</md:abstract>
</metadata>

  <content xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
    <section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="sect_1">
      <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Computer Architecture</name>
      
      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="intro_to_comp_org">
        To understand digital signal processing systems, we must
	understand a little about how computers compute.  The modern
	definition of a <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">computer</emphasis> is an electronic
	device that performs calculations on data, presenting the
	results to humans or other computers in a variety of
	(hopefully useful) ways.
      </para>

      <figure xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="figure_2">
	<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Organization of a Simple Computer</name>
	<media xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="image/png" src="hardware.png"/>
	<caption xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  Generic computer hardware organization.
	</caption>
      </figure>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="generic_computer">
        The generic computer contains <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">input</emphasis>
	devices (keyboard, mouse, A/D (analog-to-digital) converter,
	etc.), a <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">computational unit</emphasis>, and output
	devices (monitors, printers, D/A converters).  The
	computational unit is the computer's heart, and usually
	consists of a <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">central processing unit</emphasis>
	(CPU), a <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">memory</emphasis>, and an input/output
	(I/O) interface.  What I/O devices might be present on a given
	computer vary greatly.

	<list xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="list_3" type="bulleted"><item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	    <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">A simple computer operates fundamentally in
	    discrete time.</emphasis> Computers are
	    <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">clocked</emphasis> devices, in which
	    computational steps occur periodically according to ticks
	    of a clock.  This description belies clock speed: When you
	    say "I have a 1 GHz computer," you mean that your computer
	    takes 1 nanosecond to perform each step.  That is
	    incredibly fast!  A "step" does not, unfortunately,
	    necessarily mean a computation like an addition; computers
	    break such computations down into several stages, which
	    means that the clock speed need not express the
	    computational speed.  Computational speed is expressed in
	    units of millions of instructions/second (Mips).  Your 1
	    GHz computer (clock speed) may have a computational speed
	    of 200 Mips.
	  </item>

	  <item xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	    <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Computers perform integer (discrete-valued)
	    computations.</emphasis>  Computer calculations can be
	    numeric (obeying the laws of arithmetic), logical (obeying
	    the laws of an algebra), or symbolic (obeying any law you
	    like).<note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">An example of a symbolic
	    computation is sorting a list of names.
	    </note>

	    Each computer instruction that performs an elementary
	    numeric calculation --- an addition, a multiplication, or a
	    division --- does so only for integers.  The sum or product
	    of two integers is also an integer, but the quotient of
	    two integers is likely to not be an integer.  How does a
	    computer deal with numbers that have digits to the right
	    of the decimal point?  This problem is addressed by using
	    the so-called <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">floating-point</emphasis>
	    representation of real numbers.  At its heart, however,
	    this representation relies on integer-valued computations.
	    </item>
	</list>
      </para>
    </section>

    <section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="number">
      <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Representing Numbers</name>
      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="numbers">
         Focusing on numbers, all numbers can represented by the
        <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">positional notation system</emphasis>.  <note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">Alternative number representation systems
        exist.  For example, we could use stick figure counting or
        Roman numerals.  These were useful in ancient times, but very
        limiting when it comes to arithmetic calculations: ever tried
        to divide two Roman numerals?
        </note>
	The <m:math><m:ci>b</m:ci></m:math>-ary positional
	representation system uses the position of digits ranging from
	0 to <m:math><m:ci>b</m:ci></m:math>-1 to denote a number.
	The quantity <m:math><m:ci>b</m:ci></m:math> is known as the
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">base</emphasis> of the number system.
	Mathematically, positional systems represent the positive
	integer <m:math><m:ci>n</m:ci></m:math> as

	<equation xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="positive_int_representation">
	  <m:math>
	    <m:apply>
	      <m:forall/>
	      <m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>d</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		  </m:ci>
	      </m:bvar>
	      <m:condition>
		<m:apply>
		  <m:in/>
		  <m:ci>
		    <m:msub>
		      <m:mi>d</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub>
		  </m:ci>
		  <m:apply>
		    <m:set>
		      <m:cn>0</m:cn>
		      <m:ci>…</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>b</m:ci>
			<m:cn>1</m:cn>            
		      </m:apply>
		    </m:set>
		  </m:apply>
		</m:apply>
	      </m:condition>
	      <m:apply>
		<m:eq/>
		<m:ci>n</m:ci>
		<m:apply>
		  <m:sum/>
		  <m:bvar><m:ci>k</m:ci></m:bvar>
		  <m:lowlimit><m:cn>0</m:cn></m:lowlimit>
		  <m:uplimit><m:infinity/></m:uplimit>
		  <m:apply>
		    <m:times/>
		    <m:ci>
		      <m:msub>
			<m:mi>d</m:mi>
			<m:mi>k</m:mi>
		      </m:msub>
		    </m:ci>
		    <m:apply>
		      <m:power/>
		      <m:ci>b</m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:apply>
	  </m:math> 
	</equation>
	
	and we succinctly express <m:math><m:ci>n</m:ci></m:math> in
	base-<m:math><m:ci>b</m:ci></m:math> as
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>n</m:mi>
		<m:mi>b</m:mi>
	      </m:msub>
	    </m:ci>
	    <m:apply>
	      <m:times/>
	      <m:apply>
		<m:ci>
		  <m:msub>
		    <m:mi>d</m:mi>
		    <m:mi>N</m:mi>
		  </m:msub>
		</m:ci>
	      </m:apply>
	      <m:apply>
		<m:ci><m:msub>
		    <m:mi>d</m:mi>
		    <m:mrow>
		      <m:mi>N</m:mi>
		      <m:mo>−</m:mo>
		      <m:mn>1</m:mn>
		    </m:mrow>
		  </m:msub></m:ci>
	      </m:apply>
	      <m:ci>…</m:ci>
	      <m:apply>
		<m:ci>
		  <m:msub>
		    <m:mi>d</m:mi>
		    <m:mn>0</m:mn>
		  </m:msub>
		</m:ci>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>.

	The number 25 in base 10 equals 

	<m:math>
	  <m:apply>
	    <m:plus/>
	    <m:apply>
	      <m:times/>
	      <m:cn>2</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>10</m:cn>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:times/>
	      <m:cn>5</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>10</m:cn>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>,

	so that the <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">digits</emphasis> representing this number are 
	
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:apply>
	      <m:ci><m:msub>
		  <m:mi>d</m:mi>
		  <m:mn>0</m:mn>
		</m:msub></m:ci>
	    </m:apply>
	    <m:cn>5</m:cn>
	  </m:apply>
	</m:math>,
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:mi>d</m:mi>
		<m:mn>1</m:mn>
	      </m:msub>
	    </m:ci>
	    <m:cn>2</m:cn>
	  </m:apply>
	</m:math>, and all other 
	<m:math>
	  <m:ci>
	    <m:msub>
	      <m:mi>d</m:mi>
	      <m:mi>k</m:mi>
	    </m:msub>
	  </m:ci>
	</m:math> equal zero.  This same number in
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">binary</emphasis> (base 2) equals 11001
	
	(<m:math>
	  <m:apply>
	    <m:plus/>
	    <m:apply>
	      <m:times/>
	      <m:cn>1</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>2</m:cn>
		<m:cn>4</m:cn>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:times/>
	      <m:cn>1</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>2</m:cn>
		<m:cn>3</m:cn>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:times/>
	      <m:cn>0</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>2</m:cn>
		<m:cn>2</m:cn>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:times/>
	      <m:cn>0</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>2</m:cn>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:apply>
	    <m:apply>
	      <m:times/>
	      <m:cn>1</m:cn>
	      <m:apply>
		<m:power/>
		<m:cn>2</m:cn>
		<m:cn>0</m:cn>
	      </m:apply>
	    </m:apply>
	  </m:apply>
	</m:math>) 
	
	and 19 in hexadecimal (base 16).  Fractions between zero and
	one are represented the same way.
	
	<equation xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="fractions">
	  <m:math>
	    <m:apply>
	      <m:forall/>
	      <m:bvar>
		<m:ci>
		  <m:msub>
		    <m:mi>d</m:mi>
		    <m:mi>k</m:mi>
		  </m:msub>
		</m:ci>
	      </m:bvar>
	      <m:condition>
		<m:apply>
		  <m:in/>
		  <m:ci><m:msub>
		      <m:mi>d</m:mi>
		      <m:mi>k</m:mi>
		    </m:msub></m:ci>
		  <m:apply>
		    <m:set>
		      <m:cn>0</m:cn>
		      <m:ci>…</m:ci>
		      <m:apply>
			<m:minus/>
			<m:ci>b</m:ci>
			<m:cn>1</m:cn>          
		      </m:apply>
		    </m:set>
		  </m:apply>
		</m:apply>
	      </m:condition>
	      <m:apply>
		<m:eq/>
		<m:ci>f</m:ci>
		<m:apply>
		  <m:sum/>
		  <m:bvar><m:ci>k</m:ci></m:bvar>
		  <m:lowlimit>
		    <m:apply>
		      <m:minus/>
		      <m:infinity/>
		    </m:apply>
		  </m:lowlimit>
		  <m:uplimit>
		    <m:cn>-1</m:cn>
		  </m:uplimit>		  
		  <m:apply>
		    <m:times/>
		    <m:ci><m:msub>
			<m:mi>d</m:mi>
			<m:mi>k</m:mi>
		      </m:msub></m:ci><m:apply>
		      <m:power/>
		      <m:ci>b</m:ci>
		      <m:ci>k</m:ci>
		    </m:apply>          
		  </m:apply>
		</m:apply>          
	      </m:apply>
	    </m:apply>
	  </m:math>
	</equation>

	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">All</emphasis> numbers can be represented by their
	sign, integer and fractional parts.  <cnxn xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" document="m0081" strength="4">Complex numbers</cnxn> can be thought of as two
	real numbers that obey special rules to manipulate them.
      </para>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="Silly_Humans">Humans use base 10, commonly assumed to be due to us having
	ten fingers.  Digital computers use the base 2 or
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">binary</emphasis> number representation, each digit
	of which is known as a <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">bit</term>
	(<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">b</emphasis>inary dig<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">it</emphasis>).

      <figure xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="figure_3">
	<name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Number representations on computers</name>
	<media xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="image/png" src="sys29.png"/>
	<caption xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  The various ways numbers are represented in binary are
	  illustrated.  The number of bytes for the exponent and
	  mantissa components of floating point numbers varies.
	</caption>
      </figure>

	Here, each bit is represented as a voltage that is either
        "high" or "low," thereby representing "1" or "0,"
        respectively.  To represent signed values, we tack on a
        special bit—the <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">sign bit</term>—to express
        the sign.  The computer's memory consists of an ordered
        sequence of <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">bytes</term>, a collection of eight bits.  A
        byte can therefore represent an unsigned number ranging from
	<m:math>
	  <m:cn>0</m:cn>
	</m:math>
	to 
	<m:math>
	  <m:cn>255</m:cn> </m:math>.  If we take one of the bits and
	make it the sign bit, we can make the same byte to represent
	numbers ranging from
	<m:math><m:apply><m:minus/><m:cn>128</m:cn></m:apply></m:math>
	to <m:math><m:cn>127</m:cn></m:math>.  But a computer cannot
	represent <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">all</emphasis> possible real numbers.  The
	fault is not with the binary number system; rather having only
	a finite number of bytes is the problem.  While a gigabyte of
	memory may seem to be a lot, it takes an infinite number of
	bits to represent <m:math><m:pi/></m:math>.  Since we want to
	store many numbers in a computer's memory, we are restricted
	to those that have a <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">finite</emphasis> binary
	representation.  Large integers can be represented by an
	ordered sequence of bytes.  Common lengths, usually expressed
	in terms of the number of bits, are 16, 32, and 64.  Thus, an
	unsigned 32-bit number can represent integers ranging between
	0 and
	<m:math>
	  <m:apply>
	    <m:minus/>
	    <m:apply>
	      <m:power/>
	      <m:cn>2</m:cn>
	      <m:cn>32</m:cn>
	    </m:apply>
	    <m:cn>1</m:cn>
	  </m:apply>
	</m:math> (4,294,967,295), a number almost big enough to
	enumerate every human in the world!<note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">You
	need one more bit to do that.
	</note>
      </para>

      <exercise xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer2">
	<problem xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer2a">
	    For both 32-bit and 64-bit integer representations, what
	    are the largest numbers that can be represented if a sign bit must also be included.
	  </para>
	</problem>
	<solution xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer2b">
	    For <m:math><m:ci>b</m:ci></m:math>-bit signed integers,
	    the largest number is
	    <m:math>
	      <m:apply>
		<m:minus/>
		<m:apply>
		  <m:power/>
		  <m:cn>2</m:cn>
		  <m:apply><m:minus/>
		    <m:ci>b</m:ci>
		    <m:cn>1</m:cn>
		  </m:apply>
		</m:apply>
		<m:cn>1</m:cn>
	      </m:apply>
	    </m:math>. For 
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>b</m:ci>
		<m:cn>32</m:cn>
	      </m:apply>
	    </m:math>, we have 2,147,483,647 and for 
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:ci>b</m:ci>
		<m:cn>64</m:cn>
	      </m:apply>
	    </m:math>, we have 9,223,372,036,854,775,807 or about 
	    <m:math>
	      <m:cn type="e-notation">9.2<m:sep/>18</m:cn>
	    </m:math>. 
	  </para>
	</solution>
      </exercise>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="intro_float_representation">
	While this system represents integers well, how about numbers
	having nonzero digits to the right of the decimal point?
	In other words, how are numbers that have fractional parts represented? For
	such numbers, the binary representation system is used, but
	with a little more complexity.  The
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">floating-point</emphasis> system uses a number of
	bytes - typically 4 or 8 - to represent the number, but with
	one byte (sometimes two bytes) reserved to represent the
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">exponent</emphasis> <m:math><m:ci>e</m:ci></m:math>
	of a power-of-two multiplier for the number - the
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">mantissa</emphasis> <m:math><m:ci>m</m:ci></m:math>
	- expressed by the remaining bytes.
	
	<equation xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="eq1">
	  <m:math>
	    <m:apply><m:eq/>
	      <m:ci>x</m:ci>
	      <m:apply>
		<m:times/>
		<m:ci>m</m:ci>
		<m:apply>
		  <m:power/>
		  <m:cn>2</m:cn><m:ci>e</m:ci>
		</m:apply>
	      </m:apply>        
	    </m:apply>
	  </m:math>
	</equation>
	The mantissa is usually taken to be a binary fraction having a
	magnitude in the range 

	<m:math>
	  <m:apply>
	    <m:interval closure="closed-open">
              <m:apply>
		<m:divide/>
		<m:cn>1</m:cn>
		<m:cn>2</m:cn>
	      </m:apply>
	      <m:cn>1</m:cn>
	    </m:interval>
	  </m:apply>
	</m:math>, which means that the binary representation is such that 
	<m:math>
	  <m:apply>
	    <m:eq/>
	    <m:ci>
	      <m:msub>
		<m:ci>d</m:ci>
		<m:cn>-1</m:cn>
	      </m:msub>
	    </m:ci>
	    <m:cn>1</m:cn>
	  </m:apply>
	</m:math>.  <note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">In some computers, this
	normalization is taken to an extreme: the leading binary digit
	is not explicitly expressed, providing an extra bit to
	represent the mantissa a little more accurately.  This
	convention is known as the <term xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">hidden-ones
	notation</term>.</note>  The number zero is an exception to
	this rule, and it is the <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">only</emphasis> floating
	point number having a zero fraction.  The sign of the mantissa
	represents the sign of the number and the exponent can be a
	signed integer.
      </para>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="problems_with_digital_representation"> A computer's
	representation of integers is either perfect or only
	approximate, the latter situation occurring when the integer
	exceeds the range of numbers that a limited set of bytes can
	represent.  Floating point representations have similar
	representation problems: <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">if</emphasis> the number
	<m:math><m:ci>x</m:ci></m:math> can be multiplied/divided by
	enough powers of two to yield a fraction lying between 1/2 and
	1 that has a <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">finite</emphasis> binary-fraction
	representation, the number is represented exactly in floating
	point.  Otherwise, we can only represent the number
	approximately, not catastrophically in error as with integers.
	For example, the number 2.5 equals 
	<m:math>
	  <m:apply><m:times/>
	    <m:cn>0.625</m:cn>
	    <m:apply><m:power/>
	      <m:cn>2</m:cn><m:cn>2</m:cn>
	    </m:apply>
	  </m:apply>
	</m:math>, the fractional part of which has an exact binary
	representation.  <note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">See if you can find
	this representation.</note> However, the number
	<m:math><m:cn>2.6</m:cn></m:math> does
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">not</emphasis> have an exact binary representation,
	and only be represented approximately in floating point.  In
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">single precision floating point</emphasis> numbers,
	which require 32 bits (one byte for the exponent and the
	remaining 24 bits for the mantissa), the number 2.6 will be
	represented as <m:math>
	<m:cn>2.600000079...</m:cn></m:math>.  Note that this
	approximation has a much longer decimal expansion.  This level
	of accuracy may not suffice in numerical calculations.
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Double precision floating point numbers</emphasis>
	consume 8 bytes, and <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">quadruple precision</emphasis>
	16 bytes.  The more bits used in the mantissa, the greater the
	accuracy.  This increasing accuracy means that more numbers
	can be represented exactly, but there are always some that
	cannot.  Such inexact numbers have an infinite binary
	representation.<note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">Note that there will
	<emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">always</emphasis> be numbers that have an infinite
	representation in any chosen positional system. The choice of
	base defines which do and which don't.  If you were
	thinking that base 10 numbers would solve this inaccuracy,
	note that 
	  <m:math>
	    <m:apply>
	      <m:eq/>
	      <m:cn type="rational">1<m:sep/>3</m:cn>
	      <m:cn>0.333333....</m:cn>
	    </m:apply>
	  </m:math>

	  has an infinite representation in decimal (and binary for
	that matter), but has finite representation in base 3.</note>
	Realizing that real numbers can be only represented
	approximately is quite important, and underlies the entire
	field of <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">numerical analysis</emphasis>, which seeks
	to predict the numerical accuracy of any computation.
      </para>
      
      <exercise xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer3">
	<problem xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer3a">
	    What are the largest and smallest numbers that can be
	    represented in 32-bit floating point? in 64-bit floating
	    point that has sixteen bits allocated to the exponent? 
	    Note that both exponent and mantissa require a sign bit.
	  </para>
	</problem>
	
	<solution xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer3b">
	    In floating point, the number of bits in the exponent
	    determines the largest and smallest representable numbers.
	    For 32-bit floating point, the largest (smallest) numbers
	    are
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:power/>
		  <m:cn>2</m:cn>
		  <m:apply>
		    <m:ci><m:mo>±</m:mo></m:ci>
		    <m:cn>127</m:cn>
		  </m:apply>
		</m:apply>
		<m:apply>
		  <m:times/>
		  <m:cn>1.7</m:cn>
		  <m:apply>
		    <m:power/>
		    <m:cn>10</m:cn>
		    <m:cn>38</m:cn>
		  </m:apply>
		</m:apply>
	      </m:apply>
	    </m:math> 
	    (<m:math>
	      <m:apply>
		<m:times/>
		<m:cn>5.9</m:cn>
		<m:apply>
		  <m:power/>
		  <m:cn>10</m:cn>
		  <m:cn>-39</m:cn>
		</m:apply>
	      </m:apply>
	    </m:math>). For 64-bit floating point, the largest number is about 
	    <m:math>
	      <m:apply>
		<m:power/>
		<m:cn>10</m:cn>
		<m:cn>9863</m:cn>
	      </m:apply>
	    </m:math>. 
	  </para>
	</solution>
      </exercise>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="representation_conclusion">
	So long as the integers aren't too large, they can be
	represented exactly in a computer using the binary positional
	notation.  Electronic circuits that make up the physical
	computer can add and subtract integers without error.
	(This statement isn't quite true; when does addition cause problems?)
      </para>

    </section>

    <section xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="arithmetic">
      <name xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">Computer Arithmetic and Logic</name>
      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="addmult">
	The binary addition and multiplication tables are

	<equation xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="ones_and_zeroes">
	  <m:math>
	    <m:matrix>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:plus/>
		    <m:cn>0</m:cn>
		    <m:cn>0</m:cn>
		  </m:apply>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:plus/>
		    <m:cn>0</m:cn>
		    <m:cn>1</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:plus/>
		    <m:cn>1</m:cn>
		    <m:cn>1</m:cn>
		  </m:apply>
		  <m:cn>10</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:plus/>
		    <m:cn>1</m:cn>
		    <m:cn>0</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:times/>
		    <m:cn>0</m:cn>
		    <m:cn>0</m:cn>
		  </m:apply>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:times/>
		    <m:cn>0</m:cn>
		    <m:cn>1</m:cn>
		  </m:apply>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:times/>
		    <m:cn>1</m:cn>
		    <m:cn>1</m:cn>
		  </m:apply>
		  <m:cn>1</m:cn>
		</m:apply>
	      </m:matrixrow>
	      <m:matrixrow>
		<m:apply>
		  <m:eq/>
		  <m:apply>
		    <m:times/>
		    <m:cn>1</m:cn>
		    <m:cn>0</m:cn>
		  </m:apply>
		  <m:cn>0</m:cn>
		</m:apply>
	      </m:matrixrow>
	    </m:matrix>
	  </m:math> 
	</equation>
      </para>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="carries_ignored">
	Note that if carries are ignored,<note xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" type="footnote">A
	  <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">carry</emphasis> means that a computation
	  performed at a given position affects other positions as
	  well.  Here,
          <m:math>
            <m:apply><m:eq/>
              <m:apply>
                <m:plus/>
                   <m:cn>1</m:cn>
                   <m:cn>1</m:cn>
                </m:apply>
              <m:cn>10</m:cn>
            </m:apply>
         </m:math>
	  is an example of a computation that involves a carry.
        </note>
	
	subtraction of two single-digit binary numbers yields the same
	bit as addition.  Computers use high and low voltage values to
	express a bit, and an array of such voltages express numbers
	akin to positional notation.  Logic circuits perform
	arithmetic operations.
      </para>

      <exercise xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer1">
	<problem xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer1a">
	    Add twenty-five and seven in base 2.  Note the carries
	    that might occur.  Why is the result "nice"?
	  </para>
	</problem>
	<solution xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">
	  <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="exer1b">
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:cn type="integer" base="10">25</m:cn>
		<m:cn type="integer" base="2">11011</m:cn>
	      </m:apply>
	    </m:math> and 
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:cn type="integer" base="10">7</m:cn>
		<m:cn type="integer" base="2">111</m:cn>
	      </m:apply>
	    </m:math>. We find that 
	    <m:math>
	      <m:apply>
		<m:eq/>
		<m:apply>
		  <m:plus/>
		<m:cn type="integer" base="2">11001</m:cn>
		<m:cn type="integer" base="2">111</m:cn>
		</m:apply>
		<m:cn type="integer" base="2">100000</m:cn>
		<m:cn type="integer" base="10">32</m:cn>
	      </m:apply>
	    </m:math>. 
	  </para>
	</solution>
      </exercise>

      <para xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" id="logical_operations">
	Also note that the logical operations of AND and OR are
	equivalent to binary addition (again if carries are ignored).
	The variables of logic indicate truth or falsehood.
	<m:math><m:apply><m:intersect/> <m:ci>A</m:ci><m:ci>B</m:ci>
	  </m:apply>
	</m:math>, the AND of <m:math><m:ci>A</m:ci></m:math> and
	<m:math><m:ci>B</m:ci></m:math>, represents a statement that
	both <m:math><m:ci>A</m:ci></m:math> and
	<m:math><m:ci>B</m:ci></m:math> must be true for the statement
	to be true.  You use this kind of statement to tell search
	engines that you want to restrict hits to cases where both of
	the events <m:math><m:ci>A</m:ci></m:math> and
	<m:math><m:ci>B</m:ci></m:math> occur.
	<m:math><m:apply><m:union/><m:ci>A</m:ci><m:ci>B</m:ci>
	  </m:apply>
	</m:math>, the OR of <m:math><m:ci>A</m:ci></m:math> and
	<m:math><m:ci>B</m:ci></m:math>, yields a value of truth if
	either is true.  Note that if we represent truth by a "1" and
	falsehood by a "0," <emphasis xmlns:md="http://cnx.rice.edu/mdml/0.4" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/">binary multiplication
	corresponds to AND and addition (ignoring carries) to
	OR</emphasis>.  The Irish mathematician George Boole
	discovered this equivalence in the mid-nineteenth century.  It
	laid the foundation for what we now call Boolean algebra,
	which expresses as equations logical statements.  More
	importantly, any computer using base-2 representations and
	arithmetic can also easily evaluate logical statements.  This
	fact makes an integer-based computational device much more
	powerful than might be apparent.
      </para>
      

    </section>
    
  </content>
</document>
