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
Which of these sedimentary rocks is made of the largest particles?
Marta_Voda [28]
Your answer is <span>A.conglomerate.

Hope this helps :)</span>
6 0
3 years ago
If you’re the victim of cyber bullying behavior, besides contacting your teacher or the school, where else can you go to find in
RideAnS [48]

parents

childline

ceop

family

3 0
3 years ago
Which tab should you choose to add a picture from a file to your presentation?
Tems11 [23]

C. Insert

Insert will let you inseet different things into your presentation.

6 0
3 years ago
Internet is a boon or curse
tangare [24]
It really depends on what you're using it for such as looking up a recipe or an answer to a question. If you're using it for illegal purposes or looking up things that are seen as morally wrong by other people it can make the internet seem like a bad thing. But the internet wasn't created with that intended purpose so again it's just your own personal opinion.
4 0
3 years ago
The table shows the number of points Ramon has earned on science quizzes. Quiz 16 points Quiz 2 9 points Quiz 3 1 point Quiz 4 9
kotykmax [81]

Answer:9

Explanation:d.9

6 0
2 years ago
Other questions:
  • 25. Becca is learning how to brush her teeth independently and her therapist/RBT has created an activity schedule to help teach
    6·1 answer
  • When does technology become assistive technology?
    9·2 answers
  • After a suspected identity fraud case has been resolved, you should:
    5·1 answer
  • Convert 578.2 into hexadecimal​
    9·1 answer
  • Definition of laptop
    12·2 answers
  • The blue section of the following Venn diagram could represent which of the following Boolean statements?
    14·1 answer
  • Given six memory partitions of 300 KB, 600 KB, 350 KB, 200 KB, 750 KB, and 125 KB (in order). The memory allocation algorithm th
    14·1 answer
  • What is the missing line of code? &gt;&gt;&gt; &gt;&gt;&gt; math.sqrt(16) 4.0 &gt;&gt;&gt; math.ceil(5.20) 6
    14·2 answers
  • Will mark Brainliest!! What is the best memory to use on a computer? Why?
    9·1 answer
  • Tom wants to send an image by email to his friend Nadia. He needs to reduce
    15·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!