Explanation of Solution
Function definition for “mul3div4()” function:
The implementation for “mul3div4()” function is given below:
//Header file
#include <stdio.h>
#include <assert.h>
#include <limits.h>
//Function definition for divide by power of "2"
int divide_power2(int x, int k)
{
//Determine negation value
int isNegation = x & INT_MIN;
//Check condition
(isNegation && (x = x + (1 << k) - 1));
//Returns value by using "x >> k" that is "x/(2^k)"
return x >> k;
}
//Function definition for mul3div4 function
int mul3div4(int x)
{
//Compute multiply "3"
int m3 = (x << 1) + x;
/* Returns the value of "3 * x/4" by calling function "divide_power2" */
return divide_power2(m3, 2);
}
//Main function
int main(int argc, char* argv[])
{
//Assign the value for "x"
int xValue = 0x87651234;
/* Call function "mul3div4" with checking "x * 3 / 4" value using assert function */
assert(mul3div4(xValue) == xValue * 3 / 4);
return 0;
}
The given code is used to compute the value of “
Want to see the full answer?
Check out a sample textbook solutionChapter 2 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
- 4. Using bitwise operators In C code Write a function int negate(int n) that can negate an integer without using the - operator.arrow_forwardF = A +B'C which one of the followings is the representation of function F in terms of SOP form? F(A,B,C)= m0+m2+m3 F(A,B,C)= M0+M2+M3 F(A,B,C) = M1+M4+M5+M6+M7 F(A,B,C) = m1+m4+m5+m6+m7arrow_forwardcode required in mips programming language a .s or .asm code not a c code. Write a MIPS procedure that takes as its two parameters the starting address of a (zero-terminated) string, and a character c, and removes all instances of the character from the string. Also, write a main program to test your procedure. Your main program should input a string from the user (you can assume that the string will be at most 40 characters, not including the zero byte delimiter), and then prompt for input of a character c. If the character c that the user inputs is the newline character (ascii code 10), your program should terminate. Otherwise, your program should invoke your procedure, output the modified string, and then prompt for input of another character to be removed from the string, continuing in this manner until the input character is the newline characterarrow_forward
- Q6. Write a function that takes an unsigned integer andreturns the number of '1' bits it has(also known as the Hamming weight).For example, the 32-bit integer '11' has binaryrepresentation 00000000000000000000000000001011,so the function should return 3.T(n)- O(k) : k is the number of 1s present in binary representation.NOTE: this complexity is better than O(log n).e.g. for n = 00010100000000000000000000000000only 2 iterations are required.Number of loops isequal to the number of 1s in the binary representation."""def count_ones_recur(n): Do it.arrow_forwardWrite in C++ program: Problem: Represent the binary representation of a float type to integer type. Single precision float (32-bit length) is represented in IEEE754 format: 1 bit of sign, 8 for exponent plus bias of 127, and 23 for the mantissa. Example: * 85.125 is [101 0101.001] in binary and this would be [1.0101 0100 1 x 2^6] in scientific notation of base 2. * Our sign bit will be [0] (positive), exponent+bias is [1000 0101] (6 + 127 = 133), and mantissa of [0 1010 1001000...] (whole is omitted and zeroes are added to the right until its length is 23). * Merging this will be [0100 0010 1010 1010 0100 0000 0000 0000] which is equivalent as 1118453760 in integer. * Therefore, binary of 85.125 in float is 1118453760 in integer. Input A single line containing a float type non-positive number. 85.125 Output A single line containing the integer representation of float type binary. 1118453760arrow_forwardDefining a binary number as Program 1, write the function int binToDec(const int bin[]) to convert an eight-bit unsigned binary number to a nonnegative decimal integer. Do not output the decimal integer in the function. Test your function with interactive input. Defining bAnd, bin1, and bin2 as binary numbers as in Program 1 above, write the void function void binaryAnd(int bAnd[], const int bin1[], const int bin2[]) to compute bAnd as the logical AND of the two binary numbers bin1 and bin2. Do not output the binary number in the function. Test your function with interactive input. Program1 in C: #include <stdio.h>int main(){int binNum[8]; // Array to read binary numberlong dec=0,n=0; // variables used to convert binary to decimalint k=0,l=0;long binary=0;int i=1,j=0,remainder=0; //reading the binary number in to the array binNumprintf("Please Enter the first binary number with each bit seperate by at least one space : \n"); scanf("%d %d %d %d %d %d %d…arrow_forward
- CAN YOU PLEASE RUN IT IN ONLINE GDB! C language. Write a program using pointers, which based on the adequate functions compute the sum, difference, dot product, or cross product of two vectors in Rn. Write a program using pointers, which based on the adequate functions, computes the sum, difference of multiplication of two matrices in Rm×n.arrow_forwardQuestion VI: Write a program that computes and plots the spectral representation of the function 1. y(t) = (10e-10t)u(t) 2. y(t) = (10e-10t cos100t)u(t)arrow_forwardWrite a function Infix_to_Prefix that takes an arithmetic expression in Infix notation as a parameter and returns the corresponding arithmetic expression with Prefix notation. Note: Question explanation, sample input and output are attached below. Kindly answer this question using pythonarrow_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_forwardWrite a function to convert a string, such as: "-13.232e-5" into a double-precision floatingpoint number. The address of the string should be passed in register $a0. The function shouldreturn the double-precision floating-point number in $f0. Conversion should terminate if theend of the string is reached (NULL byte), or an invalid character is encountered, such as aspace, comma,arrow_forwardJava offers some bit operations but not bit rotation. To complete that, create a function that takes three parameters: 1. n: Integer, which in binary representaion should be rotated. 2. m: Number of rotation steps that should be performed. 3. d: Boolean value; true = rotation right, false = rotation left. Your function should return an integer as a result of its rotated binary representation. Examples bitRotate (8, 1, true) → 4 // 8 in bin: 1000, rotated 1 step to the right: 0100, in dec: 4 bitRotate (16, 1, false) → 1 // 16 in bin: 10000, rotated 1 step to the left: 00001, in dec: 1arrow_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