w3resource

Java: Returns the largest integer but not larger than the base-2 logarithm of a specified integer

Java Basic: Exercise-156 with Solution

Write a Java program that returns the largest integer but not larger than the base-2 logarithm of a given integer.

Original Number: 2350
Result: 11

Sample Solution:

Java Code:

import java.util.Scanner;

public class Solution {
    
    public static void main(String[] args) {
        // Initializing an integer variable 'n' with the value 2350
        int n = 2350;
        
        // Displaying the original number
        System.out.printf("Original Number: %d\n", n);
        
        // Initializing a variable to count the number of right shifts
        int shift_right_count = 0;
        
        // Performing right shift operations until 'n' becomes zero
        do {
            n >>= 1; // Right shifting 'n' by 1 bit
            shift_right_count++; // Incrementing the shift count
        } while (n != 0); // Loop continues until 'n' becomes zero
        
        shift_right_count--; // Decrementing the shift count by 1 to correct the count
        
        // Displaying the final result (shift count)
        System.out.printf("Result: %s\r\n", shift_right_count);
    }
} 

Sample Output:

Original Number: 2350
Result: 11

Flowchart:

Flowchart: Java exercises: Returns the largest integer but not larger than the base-2 logarithm of a specified integer.

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to print an array after changing the rows and columns of a given two-dimensional array.
Next: Write a Java program to prove that Euclid’s algorithm computes the greatest common divisor of two positive given integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.