Computer Systems: A Programmer's Perspective (3rd Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092669
Author: Bryant, Randal E. Bryant, David R. O'Hallaron, David R., Randal E.; O'Hallaron, Bryant/O'hallaron
Publisher: PEARSON
Expert Solution & Answer
Book Icon
Chapter 2, Problem 2.97HW

Explanation of Solution

Function definition for “float_i2f()” function:

The implementation for “float_i2f()”function is given below:

//Header file

#include <stdio.h>

#include <assert.h>

#include <limits.h>

//Declare the float_bits in unsigned data type

typedef unsigned float_bits;

//Function declaration for float_i2f function

float_bits float_i2f(int i);

//Function definition for compute the bit length

int findBitsLength(int i)

{

  //Check bit length

  if ((i & INT_MIN) != 0)

  {

    //Returns value "32"

    return 32;

  }

  //Assign the unsigned number

  unsigned unum = (unsigned)i;

  //Initializes the length is "0"

  int len = 0;

  //Check the length

  while (unum >= (1<<len))

  {

    len++;

  }

  //Returns the length

  return len;

}

//Function definition to generate mask

unsigned findBitsMask(int bl)

{

  //Returns the bits mask

  return (unsigned) -1 >> (32-bl);

}

//Fnction definition for compute (float)i

float_bits float_i2f(int i)

{

  //Declare variable

unsigned signBit, exponentBit, fractionBit, remainingBit, exp_signBit,rp;

  //declare variable bits and float bits

  unsigned b, fb;

  //Assign bias value

  unsigned biasValue = 0x7F;

  //If "i" is "0", then

  if (i == 0)

  {

    //Assign all bits to "0"

    signBit = 0;

    exponentBit = 0;

    fractionBit = 0;

    //Returns the value

return signBit << 31 | exponentBit << 23 | fractionBit;

  }

  //If "i" is "INT_MIN", then

  if (i == INT_MIN)

  {

    //Assign given value to each bit

    signBit = 1;

    exponentBit = biasValue + 31;

    fractionBit = 0;

    //Returns the value

return signBit << 31 | exponentBit << 23 | fractionBit;

  }

  //Assign sign bit is "0"

  signBit = 0;

  /* For two's complement */

  /* If "i" is less than "0", then */

  if (i < 0)

  {

    //Assign sign bit to "1"

    signBit = 1;

    //Assign "i" to "i - i"

    i = -i;

  }

/* Compute bits length by calling function "findBitsLength" */

  b = findBitsLength(i);

  //Compute float bits

  fb = b - 1;

  //Compute exponent value

  exponentBit = biasValue + fb;

  //Compute remaining bit value

  remainingBit = i & findBitsMask(fb);

  //If "fb" is less than "23", then

  if (fb <= 23)

  {

    //Assign fraction bit and except bit value

    fractionBit = remainingBit << (23 - fb);

    exp_signBit = exponentBit << 23 | fractionBit;

  }

  //Otherwise

  else

  {

    //Compute offset value

    int offsetValue = fb - 23;

    //To find round middle value

    int rm = 1 << (offsetValue - 1);

    //For round part

    rp = remainingBit & findBitsMask(offsetValue);

    //Assign fraction bit and except bit value

    fractionBit = remainingBit >> offsetValue;

    exp_signBit = exponentBit << 23 | fractionBit;

    /*Check if it is round to even */

    if (rp < rm)

    {

    }

    //If round to odd, then

    else if (rp > rm)

    {

 ...

Blurred answer
Students have asked these similar questions
// Task 3 // For this function, you must return the largest power of 2 that // is less than or equal to x (which will be positive). You may // not use multiplication or some sort of power function to do this, // and should instead rely on bitwise operations and the underlying // binary representation of x. If x is 0, then you should return 0. unsigned largest_po2_le(unsigned x) { return x; }
Consider the following floating point representation where each number has 2exponent bits and 5 fraction bits. The exponent bias is 1. Round each number tohave 3 fraction bits. Apply round-to-even and round-toward-zero modes.a. 1 10 11100b. 0 00 00101c. 1 01 10101i. Can you see a pattern for rounding floating point numbers when thenumber of exponent bits are intact?
Consider an 8-bit floating point format. In this representation 4 bits are reserved for the mantissa and 3 bits are reserved for the exponent and 1 bit is reserved for the sign of the number. The exponent of the number is stored with a bias = 3. Express the decimal number 4.75 in this 8 bit floating point format. Write down the next bigger representable number in decimal base. B If you would be conducting the following operation using this 8 bit floating point format what would the result of the following calculation be ? 4.75 + 0.05 - 4.75 Express the decimal number 4.75 in this 8 bit floating point format. [10] b) Write down the next bigger representable number in decimal base. [7.5] c) If you would be conducting the following operation using this 8 bit floating point format what would the result of the following calculation be ? 4.75 + 0.05 - 4.75

Chapter 2 Solutions

Computer Systems: A Programmer's Perspective (3rd Edition)

Ch. 2.1 - Prob. 2.11PPCh. 2.1 - Prob. 2.12PPCh. 2.1 - Prob. 2.13PPCh. 2.1 - Prob. 2.14PPCh. 2.1 - Prob. 2.15PPCh. 2.1 - Prob. 2.16PPCh. 2.2 - Prob. 2.17PPCh. 2.2 - Practice Problem 2.18 (solution page 149) In...Ch. 2.2 - Prob. 2.19PPCh. 2.2 - Prob. 2.20PPCh. 2.2 - Prob. 2.21PPCh. 2.2 - Prob. 2.22PPCh. 2.2 - Prob. 2.23PPCh. 2.2 - Prob. 2.24PPCh. 2.2 - Prob. 2.25PPCh. 2.2 - Practice Problem 2.26 (solution page 151) You are...Ch. 2.3 - Prob. 2.27PPCh. 2.3 - Prob. 2.28PPCh. 2.3 - Prob. 2.29PPCh. 2.3 - Practice Problem 2.30 (solution page 153) Write a...Ch. 2.3 - Prob. 2.31PPCh. 2.3 - Practice Problem 2.32 (solution page 153) You are...Ch. 2.3 - Prob. 2.33PPCh. 2.3 - Prob. 2.34PPCh. 2.3 - Practice Problem 2.35 (solution page 154) You are...Ch. 2.3 - Prob. 2.36PPCh. 2.3 - Practice Problem 2.37 solution page 155 You are...Ch. 2.3 - Prob. 2.38PPCh. 2.3 - Prob. 2.39PPCh. 2.3 - Practice Problem 2.40 (solution page 156) For each...Ch. 2.3 - Prob. 2.41PPCh. 2.3 - Practice Problem 2.42 (solution page 156) Write a...Ch. 2.3 - Practice Problem 2.43 (solution page 157) In the...Ch. 2.3 - Prob. 2.44PPCh. 2.4 - Prob. 2.45PPCh. 2.4 - Prob. 2.46PPCh. 2.4 - Prob. 2.47PPCh. 2.4 - Prob. 2.48PPCh. 2.4 - Prob. 2.49PPCh. 2.4 - Prob. 2.50PPCh. 2.4 - Prob. 2.51PPCh. 2.4 - Prob. 2.52PPCh. 2.4 - Practice Problem 2.53 (solution page 160) Fill in...Ch. 2.4 - Practice Problem 2.54 (solution page 160) Assume...Ch. 2 - Compile and run the sample code that uses...Ch. 2 - Try running the code for show_bytes for different...Ch. 2 - Prob. 2.57HWCh. 2 - Write a procedure is_little_endian that will...Ch. 2 - Prob. 2.59HWCh. 2 - Prob. 2.60HWCh. 2 - Prob. 2.61HWCh. 2 - Write a function int_shifts_are_arithmetic() that...Ch. 2 - Fill in code for the following C functions....Ch. 2 - Write code to implement the following function: /...Ch. 2 - Write code to implement the following function: /...Ch. 2 - Write code to implement the following function: / ...Ch. 2 - You are given the task of writing a procedure...Ch. 2 - Prob. 2.68HWCh. 2 - Write code for a function with the following...Ch. 2 - Write code for the function with the following...Ch. 2 - You just started working for a company that is...Ch. 2 - You are given the task of writing a function that...Ch. 2 - Write code for a function with the following...Ch. 2 - Write a function with the following prototype: /...Ch. 2 - Prob. 2.75HWCh. 2 - The library function calloc has the following...Ch. 2 - Prob. 2.77HWCh. 2 - Write code for a function with the following...Ch. 2 - Prob. 2.79HWCh. 2 - Write code for a function threefourths that, for...Ch. 2 - Prob. 2.81HWCh. 2 - Prob. 2.82HWCh. 2 - Prob. 2.83HWCh. 2 - Prob. 2.84HWCh. 2 - Prob. 2.85HWCh. 2 - Intel-compatible processors also support an...Ch. 2 - Prob. 2.87HWCh. 2 - Prob. 2.88HWCh. 2 - We are running programs on a machine where values...Ch. 2 - You have been assigned the task of writing a C...Ch. 2 - Prob. 2.91HWCh. 2 - Prob. 2.92HWCh. 2 - following the bit-level floating-point coding...Ch. 2 - Following the bit-level floating-point coding...Ch. 2 - Following the bit-level floating-point coding...Ch. 2 - Following the bit-level floating-point coding...Ch. 2 - Prob. 2.97HW
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education