Question

THIS PROGRAM HAS TO BE WRITTEN IN C single function to count the number of leading...

THIS PROGRAM HAS TO BE WRITTEN IN C

single function to count the number of leading zeroes in the 32-bit input argument passed to the function (leading zeroes are the zeroes that occur in the most significant bit positions of the number until a bit value of ‘1’ is found).

Homework Answers

Answer #1
#include <stdio.h>

int count_leading_zeros(unsigned int n) {
    int count = 0, c = 0;
    while (n > 0) {
        ++c;
        if (n % 2 == 1) {
            count = c;
        }
        n /= 2;
    }
    return 32-count;
}

int main() {
    unsigned int n = 0xFF;
    printf("Number of leading zeros in 0x%x is %d\n", n, count_leading_zeros(n));
    n = 0xF0000000;
    printf("Number of leading zeros in 0x%x is %d\n", n, count_leading_zeros(n));
    n = 0x00F0F0A3;
    printf("Number of leading zeros in 0x%x is %d\n", n, count_leading_zeros(n));
    return 0;
}

Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
a single function (and the include directive to your header file) to perform the endian swap...
a single function (and the include directive to your header file) to perform the endian swap operation of the 32-bit input argument passed to this function. Endian ness refers to how the bytes are stored in memory. In a 32- bit word, there are 4 bytes – B0, B1, B2, and B3. Let us assume that B0 refers to the least significant byte and B3 the most significant byte. The function will swap (exchange) bytes B0 and B3, as well...
C++ code please: Write a program to count the number of positive and the number of...
C++ code please: Write a program to count the number of positive and the number of negative inputs values. The program will stop when a 0 is input. Ex: If the input is -5.5 568 2.332 0 the output is 2 positive number(s) and 1 negative number(s). Ex: If the input is 153.0 0.534 2.2 5.6 46.584 0.015 5 0 the output is 7 positive number(s) and 0 negative number(s).
QUESTION 1 During a single clock tick, how many 64-bit values can be written to an...
QUESTION 1 During a single clock tick, how many 64-bit values can be written to an input of a register file with 8 64-bit registers (i.e. an 8x64 register file)? QUESTION 2 Suppose you are designing a processor that contains a register file with 32 32-bit registers (i.e. a 32x32 register file). What is the minimum number of bits required in order to select which register is being written to? QUESTION 3 If the decimal value, 30, is shifted to...
Create a C program that evaluates the function 3x + 7. Your input will consist of...
Create a C program that evaluates the function 3x + 7. Your input will consist of a number of lines, each containing a single integer number. For each number x that is provided in the input, you should output 3x + 7 as a single integer number. Each number your program prints has to occupy a separate line. No other character should be sent to the output other than the digits of the number (and possible sign) and the newline...
Create a C program that evaluates the function 3x + 7. Your input will consist of...
Create a C program that evaluates the function 3x + 7. Your input will consist of a number of lines, each containing a single integer number. For each number x that is provided in the input, you should output 3x + 7 as a single integer number. Each number your program prints has to occupy a separate line. No other character should be sent to the output other than the digits of the number (and possible sign) and the newline...
2. Consider the following program written in C syntax: void swap(int a, int b) {   ...
2. Consider the following program written in C syntax: void swap(int a, int b) {    int temp;    temp = a;    a = b;    b = temp; } void main() {    int value = 2, list[5] = {1, 3, 5, 7, 9};    swap(value, list[0]);    swap(list[0], list[1]);    swap(value, list[value]); } For each of the following parameter-passing methods, what are all of the values of the variables value and list after each of the three...
C++ PROGRAM. (C++ INTRO QUESTION) Write a program that prints the count of all prime numbers...
C++ PROGRAM. (C++ INTRO QUESTION) Write a program that prints the count of all prime numbers between A and B (inclusive), where A and B are defined as follows: A = 55000 B = A + 5000 Just a recap on prime numbers: A prime number is any number, greater or equal to 2, that is divisible ONLY by 1 and itself. Here are the first 10 prime numbers: 2, 5, 7, 11, 13, 17, 19, 23, and 29. Rules:...
# Description: This program is a function which calculates pi #per Leibniz formula,based on the number...
# Description: This program is a function which calculates pi #per Leibniz formula,based on the number of values passed to it. # Programmer: xxxxx def calculate_pi(n):     total, sign = 0, 1     for i in range(n):         term = 1 / (2 * i + 1)         total += term * sign         sign *= -1     total *= 4     return total n = int(input("How many terms: ")) print(calculate_pi(n)) How many terms: 12 3.058402765927333 HW In Puthon Modify...
The Problem Write a C or C++ program which performs specific operations on bits. The user...
The Problem Write a C or C++ program which performs specific operations on bits. The user will specify a value The user can then set, test, or toggle individual bits in the initial value. Input Your program will prompt the user for: An inital value in hexadecimal. This value may be up to 32 bits (eight hexadecimal digits) long. If the user-supplied value is less than eight characters in length, assume the additional digits are zero and are on the...
I was asked to write a program in CodeBlocks. C++ format. I've written the first half...
I was asked to write a program in CodeBlocks. C++ format. I've written the first half of the code but I am using else and if statements. I feel like the code is too long to do a simple calculation. In CodeBlock when you build and run your code, a new terminal window opens (in windows a new console window) and you can enter your inputs there. It is not like eclipse that you enter your inputs in console view....