1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Margaret [11]
3 years ago
10

Develop a plan to design and finally implement a set of functions using C++ that would implement the IEEE standard. Phase 1 will

include the literature write up, description of the IEEE 754 floating and a complete description of the functions plan:
1. Functions type void, or any data returning function
2. Type of data passed in to the functions (function parameters or arguments)
3. Type of function parameters (value or reference).
4. Global variables if needed.
5. IEEE 754 single precision layout and its individual parts (sign, exponent, and mantissa) details.
6. The hexadecimal layout.
7. Hand work out a full example from A to Z.

Computers and Technology
1 answer:
AnnZ [28]3 years ago
6 0

Answer:

See explaination code

Explanation:

#include<iostream>

#include<math.h>

using namespace std;

typedef union {

float number;

struct

{

// Order is important.

// Here the members of the union data structure

// use the same memory (32 bits).

// The ordering is taken

// from the LSB to the MSB.

unsigned int mantissa : 23;

unsigned int exponent : 8;

unsigned int sign : 1;

} Raw;

} MyFloat;

void printBinary(int n, int i)

{

// Prints the binary representation

// of a number n up to i-bits.

int k;

for (k = i - 1; k >= 0; k--) {

if ((n >> k) & 1)

cout << "1";

else

cout << "0";

}

}

void decToHex(int n){

// char array to store hexadecimal number

char hexaDeciNum[100];

// counter for hexadecimal number array

int i = 0;

while(n!=0)

{

// temporary variable to store remainder

int temp = 0;

// storing remainder in temp variable.

temp = n % 16;

// check if temp < 10

if(temp < 10)

{

hexaDeciNum[i] = temp + 48;

i++;

}

else

{

hexaDeciNum[i] = temp + 55;

i++;

}

n = n/16;

}

// printing hexadecimal number array in reverse order

for(int j=i-1; j>=0; j--)

cout << hexaDeciNum[j];

}

void floatBinary(float f){

long double binaryTotal, binaryFrac = 0.0, frac, fracFractor = 0.1;

long int integer, binaryInt = 0;

long int p = 0, rem, temp;

//separate the integer part from the input floating number

integer = (int)f;

//separate the fractional part from the input floating number

frac = f - integer;

//loop to convert integer part to binary

while (integer != 0) {

rem = integer % 2;

binaryInt = binaryInt + rem *pow(10, p);

integer = integer / 2;

p++;

}

//loop to convert fractional part to binary

while (frac != 0) {

frac = frac * 2;

temp = frac;

binaryFrac = binaryFrac + fracFractor * temp;

if (temp == 1)

frac = frac - temp;

fracFractor = fracFractor / 10;

}

cout << binaryInt + binaryFrac;

}

int findDecimal(float number){

int nfloor = number;

float nfloat = number - nfloor;

int nfloatfloor;

do {

nfloat *= 10;

nfloatfloor = nfloat;

} while (nfloat > nfloatfloor);

return nfloatfloor;

}

void first(float number){

if(number < 0)

cout << "SIGN BIT IS (1) SINCE NUMBER IS NEGATIVE" << endl;

else

cout << "SIGN BIT IS (0) SINCE NUMBER IS POSITIVE" << endl;

}

void second(float number){

cout << "INTEGER PART IN BASE-10:" << int(number) << " AND IN BINARY:";

printBinary(int(number),16);

cout << endl;

}

void third(float number){

cout << "DECIMAL PART IN BASE-10:" << findDecimal(number) << " AND IN BINARY:";

printBinary(findDecimal(number),16);

cout << endl;

}

void fourth(float number){

cout << "ENTERED NUMBER IN BASE-10:" << number << " AND IN BINARY:";

floatBinary(number);

cout << endl;

}

void fifth(MyFloat myfloat){

cout << "MANTISA IN BINARY:";

printBinary(myfloat.Raw.mantissa,32);

}

void sixth(MyFloat myfloat){

cout << "EXPONENT IN BASE-10:" << myfloat.Raw.exponent << " AND IN BINARY:";

printBinary(myfloat.Raw.exponent,8);

cout << endl;

}

void seventh(MyFloat myfloat){

cout << myfloat.Raw.sign << " | ";

printBinary(myfloat.Raw.exponent,8);

cout << " | ";

printBinary(myfloat.Raw.mantissa,32);

cout << endl;

}

void eigth(MyFloat myfloat){

cout << myfloat.Raw.sign << " | ";

decToHex(myfloat.Raw.exponent);

cout << " | ";

decToHex(myfloat.Raw.mantissa);

cout << endl;

}

int main(){

float number;

cout << "PLEASE ENTER A NUMBER TO DISPLAY THE IEEE 754 FLOATING POINT OPTIONS" << endl;

cin >> number;

MyFloat myfloat;

myfloat.number = number;

cout << "PLEASE CHOOSE ONE OF THE FOLLOWING OPERATIONS" << endl;

cout << " 1. DISPLAY THE SIGN BIT VALUE" << endl;

cout << " 2. DISPLAY THE INTEER PART IN BOTH BASE-10 AND CINARY FORMATS" << endl;

cout << " 3. DISPLAY THE DECIMAL PART IN BOTH BASE-10 AND BINARY FORMATS" << endl;

cout << " 4. DISPLAY THE NUMBER ENTERED IN BOTH BASE-10 AND BINARY FORMATS" << endl;

cout << " 5. DISPLAY THE MANTISA IN BINARY FORMATS" << endl;

cout << " 6. DISPLAY THE EXPONENT IN BORH BASEE-10 AND BINARY FORMATS" << endl;

cout << " 7. DISPLAY THE IEEE 754 SINGLE PRECISION BINARY LAYOUT" << endl;

cout << " 8. DISPLAY THE IEEE 754 SINGLE PRECISION BINARY LAYOUT" << endl;

int choice;

cin >> choice;

switch(choice){

case 1:first(number);

break;

case 2:second(number);

break;

case 3:third(number);

break;

case 4:fourth(number);

break;

case 5:fifth(myfloat);

break;

case 6:sixth(myfloat);

break;

case 7:seventh(myfloat);

break;

case 8:eigth(myfloat);

break;

default:cout << "ENTER VALID CHOICE" << endl;

}

}

Refer to attachment please for onscreen look.

You might be interested in
A business letter should always include the address of the sender.<br> True<br> False
8090 [49]

Answer:

true

Explanation:it is true because like that they could send that letter were it go's so like that they don't have trouble looking for the person's letter

please mark me as brainlist

3 0
3 years ago
Read 2 more answers
Write the definitions for three function named max. Each receives two parameters, of the same type, and returns the larger of th
GenaCL600 [577]

Answer:

The method definition to this question can be given as:

Method definition:

double max(double x, double y)  //define method with double parameter  

{

if (x>=y)    //check condition.

return x;  //return value

else

return y;     //return value

}

double max(int x, int y)    //define method with integer parameter

{

if (x>=y)    //check condition

return x;    //return value

else

return y;  //return value

}

double max(char x, char y)   //define method with char parameter

{

if (x>=y)    //check condition

return x;    //return value

else

return y;    //return value

}

Explanation:

The above method definition can be described as below:

  • In the first method definition first, we define a method that is "max()". In this method we pass two variables as a parameter that is "x and y" and the datatype of this is double. Then we use a conditional statement. In the if block we check if variable x is greater then equal to y then it will return x else it will return y.  
  • In the second method definition, we define a method that is same as the first method name but in this method, we pass two integer variable that is "x and y". Then we use a conditional statement. In the if block we check if variable x is greater then equal to y then it will return x else it will return y.
  • In the third method definition, we define a method that is same as the first and second method name but in this method, we pass two char variable that is "x and y". Then we use a conditional statement. In the if block we check if variable x is greater then equal to y then it will return x else it will return y.
8 0
3 years ago
Access time is:________.
worty [1.4K]

Answer:

B) the time it takes for the required sector to position itself under the read/write head.

Explanation:

In Computer science, Access time is the time it takes for the required sector to position itself under the read/write head. It is usually measured in milliseconds.

It is the speed of the storage device.

5 0
3 years ago
People who enjoy working with their hands might enjoy a career as an
Kaylis [27]
People that enjoy working with their hands might enjoy being a construction worker but their are a lot of other jobs that involve using their hands but being a construction worker takes a lot of effort and a lot of hard work to complete.
6 0
3 years ago
Read 2 more answers
In HTML, an opening tag and its closing tag must appear on the same line. True Or False​
DaniilM [7]

Answer:

the answer is true, you cannot break the element apart EVERR!!!!!

3 0
3 years ago
Other questions:
  • Your desktop computer monitor is not displaying a picture. What would you do to troubleshoot the problem?
    7·2 answers
  • What would be a situation in which you could use an excel chart to present your data
    8·2 answers
  • User-system interaction is?
    11·1 answer
  • Why is the len ( ) function useful when using a loop to iterate through a stack?
    6·1 answer
  • Which of these is an example of rebranding ?
    6·2 answers
  • To open a Google Doc in another software application, the user must first download it. True or false?
    12·2 answers
  • Which of these parts serves as the rear cross structure of a vehicle?
    12·1 answer
  • If you play gta and don't know the song ''Glamorous'' Then what do you even do when you play?
    6·2 answers
  • A gui allows you to interact with objects on the screen such as icons and buttons true or false
    7·1 answer
  • A good information that contains the facts necessary for decision makers to solve a problem is characterized by the __________.
    15·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!