Page 131 - A Practical Guide from Design Planning to Manufacturing
P. 131

104   Chapter Four

        TABLE 4-9  Integer Formats (16-Bit Width)
                Format              Binary range      Decimal range
        Unsigned integer            0 to 2 16  − 1   0 to 65,535
        Signed integer              −2 15  to 2 15  − 1  −32,768 to 32,767
        Binary coded decimal (BCD)  0 to ≈ 2 13      0 to 9,999



        improve performance by taking the place of instructions controlling the
        program flow, which are more difficult to execute in parallel with other
        instructions.
          Any data being transferred will be stored as binary digits in a regis-
        ter or memory location, but there are many different formats that are
        used to encode a particular value in binary. The simplest formats only
        support integer values. The ranges in Table 4-9 are all calculated for 16-
        bit integers, but most modern architectures also support 32- and 64-bit
        formats.
          Unsigned format assumes every value stored is positive, and this gives
        the largest positive range. Signed integers are dealt with most simply by
        allowing the most significant bit to act as a sign bit, determining whether
        the value is positive or negative. However, this leads to the unfortu-
        nate problem of having representations for both a “positive” 0 and a
        “negative” 0.As a result, signed integers are instead often stored in two’s
        complement format where to reverse the sign, all the bits are negated
        and 1 is added to the result. If a 0 value (represented by all 0 bits) is
        negated and then has 1 added, it returns to the original zero format.
          To make it easier to switch between binary and decimal representa-
        tions some architectures support binary coded decimal (BCD) formats.
        These treat each group of 4 bits as a single decimal digit. This is ineffi-
        cient since 4 binary digits can represent 16 values rather than only 10,
        but it makes conversion from binary to decimal numbers far simpler.
          Storing numbers in floating-point format increases the range of
        values that can be represented. Values are stored as if in scientific nota-
        tion with a fraction and an exponent. IEEE standard 754 defines the for-
        mats listed in Table 4-10. 4
          The total number of discrete values that can be represented by inte-
        ger or floating-point formats is the same, but treating some of the bits
        as an exponent increases the range of values. For exponents below 1, the
        possible values are closer together than an integer representation; for
        exponents greater than 1, the values are farther apart. The IEEE stan-
        dard reserves an exponent of all ones to represent special values like
        infinity and “Not-A-Number.”

          4
          “IEEE 754.”
   126   127   128   129   130   131   132   133   134   135   136