C

형변환, 10진수 -> 2진수

parkrams 2024. 1. 20. 10:57
728x90
  • 기본 적인 형변환은 자바랑 똑같다
int i;

float f  = 2.4; 일 때 

i = f ; 

printf("i  =  %d",  i) 를 출력하게 되면 

2가 출력은 되지만 

// 경고 C4244 : '=' ": 'double' 로 부터 'int' 로의 형 변환, 데이터의 손실이 예상됨.

이런 오류 메시지가 뜬다. 

그러므로 우리는 컴퓨터한테 내가 이 값을 어떻게 쓴다고 명시 해줘야 한다.

i = (int)f;   // 나는 f를 int 값으로 형변환 해서 쓸꺼야 
  • 문제

    /*임의의 실수에서 소수점 이하 두자리수만 추출하여 정수형 변수에 대입하라. 예를들어 사용자로부터
    입력받은 실수 f 가 12.3456이라면 34만 추출한다. 이때 반올림은 고려하지 않아도 상관없다. f가 
    달러 단위의 화폐 액수라고할 때 센트 단위만 추출해내는 경우라고 생각하면 된다. 다음 ????
    자리에 적합한 연산식을 작성하는 문제이다.
    */

    int i;
    float f;

    printf("실수를 입력하시오 : ");
    scanf_s("%f", &f);

    //   1234    % 100 = 34    / = 12 
    i = (int)(f * 100) % 100;  // f * 100 하면 1234.56 인데 형변환 정수로 하면 .56이 사라지므로  1234가 된다.

    printf("i = %d\n", i);

 

728x90