Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (3rd Edition)
Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (3rd Edition)
3rd Edition
ISBN: 9780134123837
Author: Randal E. Bryant, David R. 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
Create 6 users: Don, Liz, Shamir, Jose, Kate, and Sal. Create 2 groups: marketing and research. Add Shamir, Jose, and Kate to the marketing group. Add Don, Liz, and Sal to the research group. Create a shared directory for each group. Create two files to put into each directory: spreadsheetJanuary.txt meetingNotes.txt Assign access permissions to the directories:  Groups should have Read+Write access Leave owner permissions as they are  “Everyone else” should not have any access   Submit for grade: Screenshot of  /etc/passwd contents showing your new users Screenshot of /etc/group contents showing new groups with their members Screenshot of shared directories you created with files and permissions
⚫ your circuit diagrams for your basic bricks, such as AND, OR, XOR gates and 1 bit multiplexers, ⚫ your circuit diagrams for your extended full adder, designed in Section 1 and ⚫ your circuit diagrams for your 8-bit arithmetical-logical unit, designed in Section 2. 1 An Extended Full Adder In this Section, we are going to design an extended full adder circuit (EFA). That EFA takes 6 one bit inputs: aj, bj, Cin, Tin, t₁ and to. Depending on the four possible combinations of values on t₁ and to, the EFA produces 3 one bit outputs: sj, Cout and rout. The EFA can be specified in principle by a truth table with 26 = 64 entries and 3 outputs. However, as the EFA ignores certain inputs in certain cases, it is easier to work with the following overview specification, depending only on t₁ and to in the first place: t₁ to Description 00 Output Relationship Ignored Inputs Addition Mode 2 Coutsjaj + bj + Cin, Tout= 0 Tin 0 1 Shift Left Mode Sj = Cin, Cout=bj, rout = 0 rin, aj 10 1 1 Shift Right…
Show the correct stereochemistry when needed!! mechanism: mechanism: Show the correct stereochemistry when needed!! Br NaOPh diethyl ether substitution

Chapter 2 Solutions

Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (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
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
COMPREHENSIVE MICROSOFT OFFICE 365 EXCE
Computer Science
ISBN:9780357392676
Author:FREUND, Steven
Publisher:CENGAGE L
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,