Transmit Float as Byte Stream Using Union

Code

#include <stdio.h>
#include <stdint.h>

typedef union {
    float f;
    uint8_t bytes[4];
} FloatPacket;

int main() {
    float input;
    // Read a float from input
    if (scanf("%f", &input) != 1) {
        return 1;
    }

    FloatPacket packet;
    // Fill the union with the input float
    packet.f = input;

    // Use the union to access and print the 4 individual bytes (LSB first)
    for (int i = 0; i < 4; i++) {
        // Print as hex with leading zeros for clarity
        printf("Byte %d: %d\n", i, packet.bytes[i]);
    }

    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

1

Expected Output

Byte 0: 0 Byte 1: 0 Byte 2: 128 Byte 3: 63