2진수 ,16진수 변환 방법

nayana의 이미지

int a = 65 와 float = 65를 16진수로 변환 시키고 그 다음에 2진수로 변환
시키려고 하는데...
int 형은 무리없이 잘돌아갑니다.
그런데...float 형은 16진수로 변환을 어떻게 시켜야하죠

#include <stdio.h>

int main( void )
{
    float a = 3;
    printf("0X%8x\n", a );

    return 0;
}

하면 0만 나와버립니다.
float 형이나 double형은 16진수 2진수로 변환을 어떻케 시켜야하나요?
hurryon의 이미지

당연히 소숫점 때문에 본래의 2진수 표현이 불가능하지 않을까요?

#include <stdio.h> 

int main( void ) 
{ 
    float a = 3; 
    printf("0X%8x\n", (int)a ); 

    return 0; 
}

정도로 하면 되지 않을까 생각하네요. ^^;

nayana의 이미지

일단 답변에 감사드립니다.
강제로 형변환을 해서 값을 얻어내는것은
int a = 3;
printf("%8x", a );
이거와 똑같은것 같은데...
내부적으로 돌아가는 연산이 틀린건가요?

pynoos의 이미지

%x 는 정수형만을 입력으로 받습니다.

float, double은 자체 제작해야죠..