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
Would an artificial intelligence come into existence anytime in the next 30 years?
Scrat [10]
Artificial Intelligence, based on neural networks, is available now.
4 0
3 years ago
Different Betweens in SRAM and DRAM !
den301095 [7]

Answer:

Explanation:

<u>Application Differences:</u>

<u>SRAM</u>

SRAM stands for Static Random Access Memory  DRAM stands for Dynamic Random Access Memory

Faster access is due to the usage of transistors to store single bit of data  

SRAMs are used for cache memories due to faster access time  

<u>DRAM</u>

DRAM stands for Dynamic Random Access Memory

DRAMs are used for main memories due to comparatively slower access time.

DRAMs use capacitor to store bits where each capacitor holds a single bit

<u>Parameter differences</u>  

<u>Speed:</u> SRAMs are faster due to presence of transistors. DRAMs are slower due to presence of capacitors

<u>Size:</u> Due to complexity involved in the internal circuits, SRAMs are smaller in capacity for same size of the chip. DRAMs are larger as compared to SRAMs since their capacity for a given physical size is more.

<u>Cost:</u> SRAMs are costlier and the per bit storage cost is more than that of the DRAMs. DRAMs are cheaper and the per bit storage cost is less than that of the SRAMs

5 0
2 years ago
Read 2 more answers
3 uses of base 10 in computer systems
kkurt [141]
In any positional system of representing numbers, the number is important because it is equal to (in fact represents) the base . the base is typically (though not necessarily) some integer greater than (the multiplicative identity). for instance, decimal uses the digits , , binary uses , .
3 0
3 years ago
my headphone jack that is like in the computer will not work only my speakers will work when i plug in
marusya05 [52]

I'm assuming that what you are saying is that while the headphone is plugged in to the computer, it still plays on the computer speakers.

Most likely, the headphone outlet is dirty and need cleaning. To solve this, plug in your headphones into the headphone outlet, and take it out really quickly. Do this for a certain amount of time until it works.

If this does not work, check the settings if you are allowing it to play into external devices or not.

~

3 0
3 years ago
Read 2 more answers
Enter just the letter of the correct answer
FromTheMoon [43]
The correct answer is firewall
7 0
3 years ago
Other questions:
  • a problem exists when the current condition differs from a desired condition. This idea defines which step in problem-solving?
    13·2 answers
  • You are responsible for performing all routine maintenance on your company's laser printers. Which of the following maintenance
    15·1 answer
  • Answer these two if u can❤️
    5·2 answers
  • 3.
    5·1 answer
  • To achieve the maximum confidentiality and integrity found in a completely secure information system would require that the syst
    10·1 answer
  • Do you know how to change your grades on a printer???????????
    13·1 answer
  • Create a method called letterGrade that will pass the student's average grade as a parameter and return a letter grade (char). O
    12·1 answer
  • For two integers m and n, their GCD(Greatest Common Divisor) can be computed by a recursive function. Write a recursive method g
    8·1 answer
  • Write a pseudocode algorithm that prompts the user to enter a three-digit number and outputs the hundreds, tens and units.
    6·1 answer
  • Word wrap is the same as __________ return and means you let the ______________ control when it will go to a new line.
    11·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!