Skip to main content

Featured

Merge Sort in C++

  Merge Sort in C++ Introduction Merge Sort is a popular sorting algorithm that follows the Divide and Conquer approach. It divides an array into smaller subarrays, recursively sorts those subarrays, and finally merges the sorted subarrays to produce a completely sorted array. In this tutorial, we will learn how to implement Merge Sort in C++ . The program divides the array into two halves using the mid index, recursively sorts both halves, and then combines them using the merge() function. Merge Sort has a time complexity of O(n log n) in the best, average, and worst cases. Table of Contents Algorithm C++ Program Input Sample Output Output Explanation Dry Run Flow of Execution Time Complexity Space Complexity Applications Key Points Interview Questions Frequently Asked Questions Keywords Conclusion Algorithm Start the program. Read the size of the array. Read the array elements from the user. Call the mer...

C Program: Union and Nibble Sum of a Hexadecimal Number

C Program: Union and Nibble Sum

๐Ÿ”ท C Program: Union and Nibble Sum of a Hexadecimal Number

#include <stdio.h>

union byteunion
{
    unsigned int full_word;
    unsigned char bytes[4];
};

int main( )
{
    union byteunion data;
    scanf("%x", &data.full_word);

    int upper_sum = 0, lower_sum = 0;

    printf("\nBytes: ");
    for (int i = 3; i >= 0; i--)
    {
        printf("0x%02X", data.bytes[i]);
        if (i != 0)
            printf(", ");
    }

    for (int i = 0; i < 4; i++)
    {
        int byte = data.bytes[i];
        int upper = byte / 16;
        int lower = byte % 16;
        upper_sum += upper;
        lower_sum += lower;
    }

    printf("\nUpper nibble addition: 0x%02x", upper_sum);
    printf("\nLower nibble addition: 0x%02X\n", lower_sum);
}
  

๐Ÿ“˜ Explanation:

This program demonstrates how to use a union in C to access individual bytes of a 32-bit hexadecimal input.

๐Ÿ”น A union is used to share memory between an unsigned int and an array of 4 bytes.
๐Ÿ”น The user inputs a 32-bit hexadecimal number.
๐Ÿ”น The program prints all 4 bytes from most significant to least significant.
๐Ÿ”น Each byte is split into upper and lower 4-bit nibbles.
๐Ÿ”น It then calculates and displays the sum of upper and lower nibbles separately in hexadecimal format.

๐Ÿ” Sample Output:

Input:
12345678

Output:
Bytes: 0x12, 0x34, 0x56, 0x78
Upper nibble addition: 0x15
Lower nibble addition: 0x14
    

๐Ÿท️ Keywords:

C union example, hexadecimal byte access, nibble sum, bitwise manipulation, memory sharing in C, byte array, 32-bit hex analysis

Comments

Popular Posts

๐ŸŒ™