참고로 말하는데 코린이임..

c++중인데 몇가지 질문이있음..꼭좀 대답해주세여


1.

float num하고 정수 5입력또는 초기화하고 

cout<<num 일케해서 출력했더니


나는 float이 실수형 데이터니까 5.00000이렇게 나올줄 알았거든? 근데

출력창보니 그냥 5라고 떡하니 나와있는데


c언어에서야 printf("%f",num) 같이 %f이라는 서식문자가 있으니까 5.00이렇게 출력되겠지만 c++ 에서는 그냥 정수형으로 출력되던데

이유가 뭐때문이에여?


그담 질문은 내가 머리가 나빠서 부동소수점 이해하는데 어려움을 겪고 있는데


2.유효숫자 유효숫자 거리던데..이게 정확하게 뭔지..?


3.

#include <iostream>
using namespace std;

int main()
{
float a=2.34123E+22f;
float b=a+1.0f;

cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
cout<<"b - a = "<<b-a<<endl;
return 0;
}
이 소스에서 답이 1이 나오기를 예상했는데 출력결과가 0임..뭐때문인지..

4.
float 형은 23비트를 가수로,8비트를 지수로 사용한다고 되어있는데 23비트면 7자리수를 표현 할 수있더라구요.
그럼 float형 변수에 12345678 이라는 숫자를 입력하면 이건 8자리이고, 7자리를 표현할 수있는 float에다가 못담으니 부동소수점?으로 나타내질거고
1.234567 * E6 이렇게 나타내진다는거 맞나요?

5.
근데 flot의 범위를 보니 float형은 -3.4x 10^37 ~ 3.4x10^38 까지 나타낼수 있다는데 3번 질문에서 7자리까지 표현못한다고하는데 이건 무슨 의미인가요?

6.
부동소수점을 표기할때 어떤 책은
가수를 1.xxx * 2^n 로 표기하고 어떤책은 그냥 m.xxx * E^n (m,n은 정수)이런식으로 표기하던데 어떤게 맞는거죠?