* 소수의 2진수 나타내기
ex ) 6.125(10)
> 소수점의 왼쪽은 기존방식으로 바꾼다 > 110(2) = 6(10)
> 소수점의 오른쪽은 0.125
> 0.125 * 2 = 0.25 > 0을 올린다
> 110.0
> 0.25 * 2 = 0.5 > 0을 올린다
> 110.00
> 0.5 * 2 = 1.0 > 1을 올린다
> 110.001
>> 6.125(10) > 110.001(2) (소수점의 자리는 *2를 해서 1.0을 만들때까지)
ex 2) 6.1(10)
> 110.
> 0.1 * 2 = 0.2 > 0을 올린다
> 110.0
> 0.2 * 2 = 0.4 > 0을 올린다
> 110.00
> 0.4 * 2 = 0.8 > 0을 올린다
> 110.000
> 0.8 * 2 = 1.6 > 1을 올린다
> 110.0001
> 0.6 * 2 = 1.2 > 1을 올린다
> 110.00011
> 0.2 * 2 = 0.4 > 0을 올린다
> 110.000110 (여기서부터 무한반복)
10진수(소수점)를 2진수로 완벽하게 나타낼 수 없다.
* 컴퓨터가 소수를 저장하는 방식 IEEE-754
* 정규화
6.125 > 110.001
정규화 > 1.10001 * 2^2 (2 : 지수부, 10001 : 가수부, 부호비트 : 0)
* C의 type의 크기를 알아보자(Sizeof)
#include <stdio.h>
int main(void)
{
// 8진수 > 앞에 0을 붙이면 된다.
/*int a = 0107;
printf("%d",a);*/
// 10진수, 8진수, 16진수
int num = 67;
printf(" Decimal : %#d, Octal : %#o, Hexa decimal : %#x\n",num,num,num); // #을 사용하면 어떤 진수인지 가르쳐준다
// Sizeof (연산자) > 메모리에 얼마나 잡아먹는지? 크기가 얼마나 되는지?
printf("The Size of int 67 is %dbytes\n",sizeof(67));
printf("The Size of long 67L is %dbytes\n", sizeof(67.0));
printf("The Size of int is %dbytes\n", sizeof(int));
printf("The Size of long long is %dbytes\n", sizeof(long long));
printf("The Size of char is %dbytes\n", sizeof(char));
printf("The Size of short is %dbytes\n", sizeof(short));
printf("The Size of float is %dbytes\n", sizeof(float));
printf("The Size of double is %dbytes\n", sizeof(double));
printf("The Size of long int is %dbytes\n", sizeof(long int));
return 0;
}
'C' 카테고리의 다른 글
2020.10.06 - C (0) | 2020.10.06 |
---|---|
2020.10.05 - C (0) | 2020.10.05 |
2020.09.25 - C (0) | 2020.09.25 |
2020.09.24 - C (0) | 2020.09.24 |
2020.09.23 - C (0) | 2020.09.23 |