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...
![Check Mark](/static/check-mark.png)
Want to see the full answer?
Check out a sample textbook solution![Blurred answer](/static/blurred-answer.jpg)
Chapter 2 Solutions
COMPUTER SYSTEMS&MOD MSGT/ET SA AC PKG
- *Code in Python A bit shift is a procedure whereby the bits in a bit string are moved to the left or to the right. For example, we can shift the bits in the string 1011 two places to the left to produce the string 1110. Note that the leftmost two bits are wrapped around to the right side of the string in this operation. Define two scripts, shiftLeft.py and shiftRight.py, that expect a bit string as an input. The script shiftLeft shifts the bits in its input one place to the left, wrapping the leftmost bit to the rightmost position. The script shiftRight performs the inverse operation. Each script prints the resulting string. An example of shiftLeft.py input and output is shown below: Enter a string of bits: Hello world! ello world!H An example of shiftRight.py input and output is shown below: Enter a string of bits: Hello world! !Hello worldarrow_forwardTopic: Binary Operation True or False The operations ” + ” and • on R are not associative.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,
![Text book image](https://www.bartleby.com/isbn_cover_images/9781133187844/9781133187844_smallCoverImage.gif)
![Text book image](https://www.bartleby.com/isbn_cover_images/9781337102100/9781337102100_smallCoverImage.gif)