<< Chapter < Page | Chapter >> Page > |
Humans use base 10, commonly assumed to be due to us having ten fingers. Digital computers use the base 2 or binary number representation, each digit of which is known as a bit ( b inary dig it ). 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 sign bit —to express the sign. The computer's memory consists of an orderedsequence of bytes , a collection of eight bits. A byte can therefore represent an unsigned number ranging from to . If we take one of the bits and make it the sign bit, we can make the same byte to representnumbers ranging from to . But a computer cannot represent all possible real numbers. The fault is not with the binary number system; rather having onlya finite number of bytes is the problem. While a gigabyte of memory may seem to be a lot, it takes an infinite number ofbits to represent . Since we want to store many numbers in a computer's memory, we are restrictedto those that have a finite binary representation. Large integers can be represented by anordered sequence of bytes. Common lengths, usually expressed in terms of the number of bits, are 16, 32, and 64. Thus, anunsigned 32-bit number can represent integers ranging between 0 and (4,294,967,295), a number almost big enough to enumerate every human in the world! You need one more bit to do that.
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.
For -bit signed integers, the largest number is . For , we have 2,147,483,647 and for , we have 9,223,372,036,854,775,807 or about .
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, butwith a little more complexity. The floating-point system uses a number of bytes - typically 4 or 8 - to represent the number, but withone byte (sometimes two bytes) reserved to represent the exponent of a power-of-two multiplier for the number - the mantissa - expressed by the remaining bytes.
A computer's representation of integers is either perfect or onlyapproximate, the latter situation occurring when the integer exceeds the range of numbers that a limited set of bytes canrepresent. Floating point representations have similar representation problems: if the number can be multiplied/divided by enough powers of two to yield a fraction lying between 1/2 and1 that has a finite binary-fraction representation, the number is represented exactly in floatingpoint. Otherwise, we can only represent the number approximately, not catastrophically in error as with integers.For example, the number 2.5 equals , the fractional part of which has an exact binary representation. See if you can find this representation. However, the number does not have an exact binary representation, and only be represented approximately in floating point. In single precision floating point numbers, which require 32 bits (one byte for the exponent and theremaining 24 bits for the mantissa), the number 2.6 will be represented as . Note that this approximation has a much longer decimal expansion. This levelof accuracy may not suffice in numerical calculations. Double precision floating point numbers consume 8 bytes, and quadruple precision 16 bytes. The more bits used in the mantissa, the greater the accuracy. This increasing accuracy means that more numberscan be represented exactly, but there are always some that cannot. Such inexact numbers have an infinite binaryrepresentation. Note that there will always be numbers that have an infinite representation in any chosen positional system. The choice ofbase defines which do and which don't. If you were thinking that base 10 numbers would solve this inaccuracy,note that has an infinite representation in decimal (and binary for that matter), but has finite representation in base 3. Realizing that real numbers can be only represented approximately is quite important, and underlies the entirefield of numerical analysis , which seeks to predict the numerical accuracy of any computation.
What are the largest and smallest numbers that can be represented in 32-bit floating point? in 64-bit floatingpoint that has sixteen bits allocated to the exponent? Note that both exponent and mantissa require a sign bit.
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 ( ). For 64-bit floating point, the largest number is about .
So long as the integers aren't too large, they can be represented exactly in a computer using the binary positionalnotation. 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?)
The binary addition and multiplication tables are
Note that if carries are ignored, A carry means that a computation performed at a given position affects other positions as well. Here, is an example of a computation that involves a carry. subtraction of two single-digit binary numbers yields the samebit as addition. Computers use high and low voltage values to express a bit, and an array of such voltages express numbersakin to positional notation. Logic circuits perform arithmetic operations.
Add twenty-five and seven in base 2. Note the carries that might occur. Why is the result "nice"?
and . We find that .
The variables of logic indicate truth or falsehood. , the AND of and , represents a statement that both and must be true for the statement to be true. You use this kind of statement to tell searchengines that you want to restrict hits to cases where both of the events and occur. , the OR of and , yields a value of truth if either is true. Note that if we represent truth by a "1" andfalsehood by a "0," binary multiplication corresponds to AND and addition (ignoring carries) toXOR . XOR, the exclusive or operator, equals the union of and . The Irish mathematician George Boolediscovered 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 andarithmetic can also easily evaluate logical statements. This fact makes an integer-based computational device much morepowerful than might be apparent.
Notification Switch
Would you like to follow the 'Fundamentals of electrical engineering i' conversation and receive update notifications?