티스토리 뷰

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

'C' 카테고리의 다른 글

포인터  (1) 2024.01.28
배열  (0) 2024.01.25
C 언어 loop 관련 연습 문제 풀이 ( 각종 삼각형, 피보나치 등 )  (0) 2024.01.17
조건문 (if), 반복문 (while, for)  (0) 2024.01.13
문자 입력 받기  (0) 2024.01.11
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함