Explanation of Solution
Function definition for “float_negate()” function:
The implementation for “float_negate()” function is given below:
//Header file
#include <stdio.h>
#include <assert.h>
//Declare the float_bits in unsigned data type
typedef unsigned float_bits;
//Function declaration for float_negate function
float_bits float_negate(float_bits f);
//Function definition for float_negate function
float_bits float_negate(float_bits f)
{
//Compute the value of sign field
unsigned signBit = f >> 31;
//Compute the value of exponent filed
unsigned exponentBit = f >> 23 & 0xFF;
//Compute the value of fraction field
unsigned fractionBit = f & 0x7FFFFF;
//Check if the value of "f" is "NaN" or not
if (exponentBit == 0xFF && fractionBit != 0)
{
/* If "f" is "NaN", then return the given "f" value */
return f;
}
//Otherwise compute the value of "-f"
return (~signBit << 31) | (exponentBit << 23) | fractionBit;
}
//Main function
int main(int argc, char **argv)
{
/* Call function "float_negate" with checking value using "assert" function */
/* For not a number that is "NaN" */
assert(float_negate(0xFFFFFFF8) == 0xFFFFFFF8);
/* For a valid number" */
assert(float_negate(0x10001234) == 0x90001234);
}
The given code is used to compute the value of “-f” that is for floating-point number...
Want to see the full answer?
Check out a sample textbook solutionChapter 2 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- Write a function that makes the base conversion. It takes two integers n and b as input (n >= 0 andb > 1, both in base 10) and expresses n in base b. For example, the decimal expansion of 345 inbase 10 is 345 = 3 × 102 + 4 × 101 + 5 × 100.Sample input: n = 12, b =2. Sample output: 1100Explanation: (12)10 = (1100)2arrow_forwardc language Write a function which takes an integer and returns 1 if there are an odd number of ‘1’ bits 0 if there are an even number of ‘1’ bits Example, of x is 1010 in binary, it should return 0 because there are two 1's. 1110 should return 1 because there are three 1'sarrow_forwardinside the cpu, mathematical oprations like addition subtraction ,multipulcation and division are done in bit-livel. To perform bit-livel opration in c programming ,bitwise operators are used. apply the knowledge you gained while learing bit wise operators. write a program to input two integers from user by using single scanf.computer and display the value for a and b, a|b,a theta b.arrow_forward
- So this is a function that prints the two space-separated long integers denoting the respective minimum and maximum values that can be calculated by summing exactly four of the five integers. (The output can be greater than a 32 bit integer.) I want detailed explanation on the part of the code that is in bold and underlined in the starting of the function (long sum = *arr; int min = *arr; int max = *arr;). I cant understand the purpose and the logic behind this specific initialization. Sample Input 1 2 3 4 5 Sample Output 10 14 The actual code- void miniMaxSum(int arr_count, int* arr) { long sum = *arr; int min = *arr; int max = *arr; for(int i = 1; i < arr_count; i++){ sum = sum + arr[i]; if(arr[i] > max){ max = arr[i]; } if(arr[i] < min){ min = arr[i]; } } printf("%ld %ld", sum - max, sum - min); }arrow_forwardI want to write C or C++ functions that evaluate to ONE when the given conditions are true, and to ZERO when they are false. The following are the fourt conditions: int a(int x); //Any bit of x equals 0. int b(int x); // Any bit of x equals 1. int c(int x); //Any bit in the LSB of x equals 0. int d(int x); //Any bit in the MSB of x equals 1. The code should follow the bit-level integer coding rules, with the additional restriction that you may not use equality (==) or inequality (!=) tests.arrow_forwardA list of positive and negative numbers are in A2 through A400, and the square root of the absolute value is needed for each cell. Which function typed into B2 and copied through B400 will provide this information? a. =A2^(1/2) b. =SQRT(A2) c. =SQRT(ABS(A$2)) d. =SQRT(ABS(A2))arrow_forward
- Please help me solve this problem with kind explanations :) We are running programs on a machine where values of type int have a 32-bit two's complement representation. Values of type float use the 32-bit IEEE format, and values of type double use the 64-bit IEEE format. We generate arbitrary integer values x, y, and z, and convert them to values of type double as follow: /* Create some arbitrary values */ int x = random(); int y = random(); int z = random(); /* Convert to double */ double dx = (double) x; double dy = (double) y; double dz = (double) z; For each of the following C expressions, you are to indicate whether or not the expression always yields 1. If it always yields 1, describe the underlying mathematical principles. Otherwise, give an example of arguments that make it yield 0. Note that you cannot use an IA32 machine running GCC to test your answers, since it would use the 80-bit extended-precision representation for both float and double. A. (double)(float) x == dx B. dx…arrow_forwardGiven an integer N and an integer D, rotate the binary representation of the integer N by D digits to the left as well as right and print the results in decimal values after each of the rotation. Note: Integer N is stored using 16 bits. i.e. 12 will be stored as 0000.....001100. Example 1: Input: N = 28, D = 2 Output: 112 7 Explanation: 28 in Binary is: 000...011100 Rotating left by 2 positions, it becomes 00...1110000 = 112 (in decimal). Rotating right by 2 positarrow_forwardIf you implement the function F(A,B,C,D)= Sum m (3,4,6,11,12,13,14) using a 8-1 MUX then which of the input position will be equal to D : a. I1 & I6 b. only I5 c. I2 & I6 & I7 d. Only I7 e. None of the choices f. I1 & I5arrow_forward
- Numbers can be regarded as product of its factors. For example,8 = 2 x 2 x 2; = 2 x 4.Write a function that takes an integer nand return all possible combinations of its factors.Note:You may assume that n is always positive.Factors should be greater than 1 and less than n.Examples:input: 1output:[]input: 37output:[]input: 12output:[ [2, 6], [2, 2, 3], [3, 4]]input: 32output:[ [2, 16], [2, 2, 8], [2, 2, 2, 4], [2, 2, 2, 2, 2], [2, 4, 4], [4, 8]].arrow_forwardBELOW MCQ GIVEN ANSWER CAN BE MORE THAN ONE OPTION. PLEASE PROVIDE CORRECT ANSWERS. ------------------- Q3 :- The ANSI C function below causes the program in which it runs to malfunction . Which of the following connection will help to perform function successfully ? /* Return a count of all the bits set in bytes */ int bitcount (unsigned char c) { unsigned char x , b , count =0; for (b = 0 , x= 1 ; !(x & 0x100); ++b, x <<=1) { if (x | c ) ++count; } return count; } A) change the type of x to a type larger than unsigned char. B) remove the extraneous variable b. C) change the return type to unsigned char . D) change if ( x | c) to if ( x & c) inside the for loop. E) change ! (c & 0x100) to ( x < 0x100) inside the for loop.arrow_forwardPlease use C++ In this lab, you need to write a program which, given a seven digit binary input given below, it will check to see if there is a single bit error using the Hamming Code method discussed in lab. For a sample of Hamming Code, the input: 1110101 will reveal that ‘110’ is the location of the error (meaning the sixth slot in the input), so the corrected number would be 1010101, and the actual message transmitted, would be 1011, which is 11 in decimal. You can use this example to test your program to ensure it’s working correctly. Create a program which can, given a 7-bit long input, written in Hamming Code style, do the three following tasks, displaying the results as output. (1) Determine if there’s an incorrect bit, and if so, where it is. (2) Display what the CORRECT code should look like (if it needs to be corrected.) (3) Display the decimal form of the message that was sent, after any needed correction. Remember, when using Hamming…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education