220k views
2 votes
Using 8-bit bytes, show how to represent 56,789. Clearly state the byte values using hexadecimal, and the number of bytes required for each context. Simply indicate the case if the code is not able to represent the information.

User Stryner
by
4.9k points

1 Answer

1 vote

Answer:

a) 56789₁₀ = 11011110111010101₂ (unsigned integer)

b) 56789₁₀ = 0000000011011110111010101₂ (Two's complement)

c) 56789₁₀ = 01010110011110001001 (BCD)

d) 56789₁₀ = ÝÕ (ASCII)

e) 56789₁₀ = 0 - 1000 1110 - 101 1101 1101 0101 0000 0000 (IEEE single precision)

Step-by-step explanation:

a) 56789₁₀ = (1 × 2¹⁵) + (1 × 2¹⁴) + (0 × 2¹³) + (1 × 2¹²) + (1 × 2¹¹) + (1 × 2¹⁰) + (0 × 2⁹) + (1 × 2⁸) + (1 × 2⁷) + (1 × 2⁶) + (0 × 2⁵) + (1 × 2⁴) + (0 × 2³) + (1 × 2²) + (0 × 2¹) + (1 × 2⁰) = 11011110111010101₂

This requires 2 bytes - 16 bits and hexadecimal byte value of DDD5.

2) since the number is positive, the two's complement is just that same binary number with a signed 0 to indicate positive number in front.

56789₁₀ = 0000000011011110111010101₂

This requires 3 bytes - 24 bits and hexadecimal byte value of 11DDD5.

c) BCD

This converts each single bit in the base-10 to binary.

5 = 0101, 6 = 0110, 7 = 0111, 8 = 1000, 9 = 10001, then combined, we have

56789₁₀ = 01010110011110001001 (BCD)

It's an historic code.

This requires 3 bytes - 24 bits and hexadecimal byte value of 56789.

d) ASCII

This uses symbols to represent the numbers.

56789₁₀ = ÝÕ (ASCII)

This requires 1 byte - 8 bits.

e) IEEE single precision

Step 1, convert to base 2

56789₁₀ = 11011110111010101₂

Step 2, normalize the binary,

11011110111010101₂ =11011110111010101 × 2⁰ = 1.1011110111010101 × 2¹⁵

Sign = 0 (a positive number)

Exponent (unadjusted) = 15

Mantissa (not normalized) = 1.1011110111010101

Step 3, Adjust the exponent in 8 bit excess/bias notation and then convert it from decimal (base 10) to 8 bit binary

Exponent (adjusted) = Exponent (unadjusted) + 2⁽⁸⁻¹⁾ - 1 = 15 + 2⁽⁸⁻¹⁾ - 1 = (15 + 127)₁₀ = 142₁₀

Exponent (adjusted) = 142₁₀ = 1000 1110₂

Step 4, Normalize mantissa, remove the leading (the leftmost) bit, since it's allways 1 (and the decimal point, if the case) then adjust its length to 23 bits, by adding the necessary number of zeros to the right:

Mantissa (normalized) = 1.101 1101 1101 0101 0000 0000 = 101 1101 1101 0101 0000 0000

Therefore,

56789₁₀ = 0 - 1000 1110 - 101 1101 1101 0101 0000 0000

This requires 4 bytes - 32 bits and hexadecimal byte value of 8E5DD500.

Hope this helps!

User Fankibiber
by
5.0k points