C scalbn() Function

Introduction

The scalbn() function in C is a standard library function that scales a floating-point number (the significand) by an integral power of two (the exponent). It is part of the C standard library (math.h).

scalbn() Function Syntax

The syntax for the scalbn() function is as follows:

#include <math.h>
double scalbn(double x, int n);

Parameters:

  • x: The floating-point value to be scaled.
  • n: The exponent to scale by (i.e., the power of two).

Returns:

  • The function returns the result of ( x \times 2^n ).

Understanding scalbn() Function

The scalbn() function takes a floating-point number ( x ) and an integer ( n ), and returns ( x \times 2^n ). This function is useful for efficiently performing binary scaling operations, especially in scientific and engineering applications.

Examples

Scaling a Floating-Point Number

To demonstrate how to use scalbn() to scale a floating-point number, we will write a simple program.

Example

#include <stdio.h>
#include <math.h>

int main() {
    double value = 1.5;
    int exponent = 3;

    // Scale the value by 2 raised to the power of exponent
    double result = scalbn(value, exponent);

    // Print the result
    printf("scalbn(%.2f, %d) = %.2f\n", value, exponent, result);

    return 0;
}

Output:

scalbn(1.50, 3) = 12.00

Using scalbn() with User Input

This example shows how to use scalbn() to scale a floating-point number provided by the user.

Example

#include <stdio.h>
#include <math.h>

int main() {
    double value;
    int exponent;

    // Get user input for the value and exponent
    printf("Enter a floating-point value: ");
    scanf("%lf", &value);
    printf("Enter an integer exponent: ");
    scanf("%d", &exponent);

    // Scale the value by 2 raised to the power of exponent
    double result = scalbn(value, exponent);

    // Print the result
    printf("scalbn(%.2f, %d) = %.2f\n", value, exponent, result);

    return 0;
}

Output (example user input value "2.5" and exponent "4"):

Enter a floating-point value: 2.5
Enter an integer exponent: 4
scalbn(2.50, 4) = 40.00

Real-World Use Case

Adjusting Floating-Point Precision

In real-world applications, the scalbn() function can be used to adjust the precision of floating-point numbers, such as in numerical simulations or scientific computations.

Example: Adjusting Floating-Point Precision

#include <stdio.h>
#include <math.h>

int main() {
    double value;
    int exponent;

    // Get user input for the value and exponent
    printf("Enter a floating-point value: ");
    scanf("%lf", &value);
    printf("Enter an integer exponent to adjust precision: ");
    scanf("%d", &exponent);

    // Adjust the precision of the value
    double adjusted_value = scalbn(value, exponent);

    // Print the results
    printf("Original value: %.10f\n", value);
    printf("Adjusted value: %.10f\n", adjusted_value);

    return 0;
}

Output (example user input value "3.1415926535" and exponent "5"):

Enter a floating-point value: 3.1415926535
Enter an integer exponent to adjust precision: 5
Original value: 3.1415926535
Adjusted value: 100.5312500000

Conclusion

The scalbn() function is essential for scaling floating-point numbers by an integral power of two in C. It is useful in various mathematical and scientific calculations, particularly in fields like numerical analysis, computer science, and engineering, where binary scaling operations are required.

Comments

Spring Boot 3 Paid Course Published for Free
on my Java Guides YouTube Channel

Subscribe to my YouTube Channel (165K+ subscribers):
Java Guides Channel

Top 10 My Udemy Courses with Huge Discount:
Udemy Courses - Ramesh Fadatare