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;
    scanf("%f", &input);
    FloatPacket fp;
    // Fill union and print 4 bytes
    fp.f = input;
    printf("Byte 0: %u\nByte 1: %u\nByte 2: %u\nByte 3: %u",fp.bytes[0],fp.bytes[1],fp.bytes[2],fp.bytes[3]);
    return 0;
}

Solving Approach

  1. Define a union that contains:
    • A float variable
    • A uint8_t[4] byte array
  2. Read a float from input
  3. Use the union to access and print the 4 individual bytes in order (LSB first)

 

 

Upvote
Downvote
Loading...

Input

1

Expected Output

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