-
개인 공부 목적의 포스팅입니다. 잘못된 정보가 있다면 댓글 남겨주시면 수정하도록 하겠습니다.
감사합니다.💡 주제 설명
IEEE754 방식 인코딩이 어떻게 동작하는가
📌 배경
IEEE754의 비정규화/정규화 인코딩을 익히다가, 개념적으로만 이해하려니 너무 헷갈려서 실제로 메모리에 어떻게 저장되는지 확인할 수 있는 코드를 짰다.
🔍 과정
- 작성한 코드
#include <stdio.h> #include <string.h> typedef union { float f; unsigned char ch[4]; } show_float; char* get_bits(unsigned char c) { char* arr[16] = { "0000","0001","0010","0011", "0100","0101","0110","0111", "1000","1001","1010","1011", "1100","1101","1110","1111" }; return arr[c]; } int main() { show_float data; scanf("%f", &data.f); printf("%f\n", data.f); char dest[33] = ""; for (int i = 3; i >= 0; i--) { strcat(dest, get_bits(data.ch[i] / 16)); strcat(dest, get_bits(data.ch[i] % 16)); } printf("%c ", dest[0]); for (int i = 1; i <= 8; i++) { printf("%c", dest[i]); } printf(" "); for (int i = 9; i <= 31; i++) { printf("%c", dest[i]); } printf("\n"); return 0; }
- 사용법
파이썬과 함께 이용하면 정말 편하다.
댓글