Explanation of Solution
Function definition for “float_le()” function:
The implementation for “float_le()” and “f2u()”function is given below:
//Header file
#include <stdio.h>
#include <assert.h>
//Function definition for returns the result as an unsigned
unsigned f2u(float xvl)
{
/* Returns the unsigned value by using "*(unsigned*)&x" */
return *(unsigned*)&xvl;
}
//Function definition for float_le function
int float_le(float x, float y)
{
//Compute the unsigned value for "x"
unsigned ux = f2u(x);
//Compute the unsigned value for "y"
unsigned uy = f2u(y);
//Get the sign bits for "x"
unsigned sx = ux >> 31;
//Get the sign bits for "y"
unsigned sy = uy >> 31;
/* Returns the result for float_le() function */
return (ux << 1 == 0 && uy << 1 == 0) ||
(sx && !sy) ||
(!sx && !sy && ux <= uy) ||
(sx && sy && ux >= uy);
}
//Main function
int main(int argc, char* argv[])
{
/* Call function "float_le" with checking value using "assert" function */
assert(float_le(-0, +0));
assert(float_le(+0, -0));
assert(float_le(0, 6));
assert(float_le(-8, 8));
return 0;
}
The given code is used to check whether its first argument in given function is less than or equal to its second argument...
Want to see the full answer?
Check out a sample textbook solutionChapter 2 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- Topic: Binary Operation True or False The operations ” + ” and • on R are not associative.arrow_forward6.use c code to Develop a code that gets two integers from the user and calculates and prints their least common multiplier or LCM. LCM is the smallest number that divides both given integers. Example. lcm (10, 15) = 30, lcm (5,7) = 35 and lcm (12, 24) = 24Hint: we know that lcm(x,y) = xy/gcd(x,y) where gcd is the greatest common divisor (discussed in class). Develop a gcd function in your code, get the two numbers from the user, call your function to calculate their gcd and then use the formula above to calculate and display their lcm GOOD LUCK! Reference This is a list of function prototypes of the C library functions presented in class. You may use any of these functions in your solutions (unless the requirements explicitly indicate otherwise). As you have been provided the function prototypes, you are expected to use the functions correctly in your solutions. double atof(char *string); int atoi(char *string); long atol(char *string); int fclose(FILE *filePointer); char *fgets(char…arrow_forwardModify the below program that the input values representingfractions are stored with denominators that are positive integers. You cannot require the user to only enter a positive denominator value; the user should not be inconvenienced by such a restriction. For example, whilst values of 1 / -2 are acceptable inputs for a fraction, the output representation should be -1 / 2. Your solution should check the denominator input; if it is negative, swap the sign of both numerator and denominator instance variables. //Import the essential package import java.util.ArrayList; import java.util.Scanner; //Define the class Fraction class Fraction { private int n, d; public Fraction() { //Initialize the values this.n = this.d = 0; } public Fraction(int n, int d) { //Initialize the variables this.n = n; this.d = d; } //Define the getter function getNum() that returns the numerator public int getNum() {…arrow_forward
- ▼ Part A - The effect of an arithmetic shift on signed numbers Let's look at see what happens to signed numbers during a shift operation. As with most problems with number representations, errors can be intermittent. Sometimes the code will work as expected, and other times it will behave in a manner that seems to be totally arbitrary. Consider the following code fragment that makes use of the fact that shifting a value left by one place multiplies the number by 2. By passing in the number to be multiplied and the power of 2 to multiply it by (for example 4 = 22) the correct answer should be passed back from the function after the results are printed for the user to examine. signed int mult_2_to_n (signed int num, int n) { signed int result; result = num << n; printf("%d multiplied by 2^%d %d\n", num, n, result); return result; } Using a signed number as the manipulated integer may cause an error in some cases. Several approaches may be used to fix the problem. Which solutions below…arrow_forwardThe program below stores 80 bool values into a char arr[10]. CompletesetBool and getBool. In both functions, index is the index of the boolvalues, from 0 to 79. getBool returns 1 if the bool value at index is trueotherwise 0. You will probably need most bitwise operations including shifting. void setBool ( char * arr , int index , int boolValue ) {}int getBool ( char * arr , int index ) {}int main ( void ) {char arr [10];memset ( arr , 0 , 10);setBool ( arr , 78 , 1);setBool ( arr , 40 , 0);int b78 = getBool ( arr , 78); // b78 is 1int b40 = getBool ( arr , 40); // b40 is 0return 0;}arrow_forwardTopic: Binary Operation True or False Under binary operation *, the a * e = e * a = a.arrow_forward
- Find the error in the following codearrow_forward(Numerical) Using the srand() and rand() C++ library functions, fill an array of 1000 floating-point numbers with random numbers that have been scaled to the range 1 to 100. Then determine and display the number of random numbers having values between 1 and 50 and the number having values greater than 50. What do you expect the output counts to be?arrow_forwardWhen you perform arithmetic operations with operands of different types, such as adding an int and a float, ____________. C# chooses a unifying type for the result you must choose a unifying type for the result you must provide a cast you receive an error messagearrow_forward
- (Numerical) Write a program that tests the effectiveness of the rand() library function. Start by initializing 10 counters to 0, and then generate a large number of pseudorandom integers between 0 and 9. Each time a 0 occurs, increment the variable you have designated as the zero counter; when a 1 occurs, increment the counter variable that’s keeping count of the 1s that occur; and so on. Finally, display the number of 0s, 1s, 2s, and so on that occurred and the percentage of the time they occurred.arrow_forwardWrite a function int Factorial(int n) to calculate factorial of n. If n is non negative then it return factorial, otherwise it display a proper error message and return -1.arrow_forward*Write a MIPS program* *Using MIPS program* Write a program that asks the user to enter an unsigned number and read it. Then swap the bits at odd positions with those at even positions and display the resulting number. For example, if the user enters the number 9, which has binary representation of 1001, then bit 0 is swapped with bit 1, and bit 2 is swapped with bit 3, resulting in the binary number 0110. Thus, the program should display 6arrow_forward
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,