float

    실수형 (float) 자료형의 메모리 구조, 실제로 변환해보기

    exponent : 지수부 (지수 부분)matissa : 기수부 (분수 부분) float형 실수의 전체 구조 IEEE 754 표준은 binary32에 대해 다음과 같이 명시한다.부호 비트 : 1 비트지수부 비트 : 8 비트가수부 비트 : 정밀도는 24 비트 (실제로 메모리엔 23 비트로 표현) 부호부 1 비트는 실수값이 양수일 때 0, 음수일 때 1로 표현된다. 지수부 8 비트를 unsigned char로 봤을 때, 실제 값에서 127을 더한 값을 저장하며 저장된 값의 범위는 다음과 같다.stored bits :    0    actual value :  -127 (실제 지수값을 표현하는 것이 아닌 특정 의미가 있음)stored bits :    1    actual value :  -126stored ..

    float 자료형의 메모리 구조 (컴퓨터의 실수 표현)

    실수형은 IEEE의 부동소수점 형식을 사용하는데 4바이트(32비트) 표현의 경우 아래와 같이 이루어져 있다. 정수의 경우 2의 보수법을 이용해서 간단하게 메모리에 저장된 비트를 확인할 수 있지만 실수는 조금 더 복잡하다.아래의 단계를 거치면 실수가 메모리에 어떻게 표현이 되는지 알 수 있다. 위에 나와있는 -101.625를 컴퓨터의 표현 방법으로 바꿔보겠다1단계 - 이진수로 바꾸기이진수로 바꾸기 위해서는 나눗셈과 곱셈을 하면 된다. 일단 부호를 제외하고, 정수 부분은 2로 나누기를 연속으로 해서 2진수로 바꿔주자 101/2 = 50 ... 150/2 = 25 ... 025/2 = 12 ... 112/2 = 6 ... 06/2 = 3 ... 03/2 = 1 ... 1 정수 부분은 1100101 이다. 소수..

    [C++] string to int, float, double 자료형 / stoi, stol, stoll

    atoi 계열 함수 및 sscanf()기존 c에서는 str 형식 사용시 다른 자료형 (int, double, float)에 맞도록 읽어오려면, atoi() 및 sscanf()로 형식을 지정해주었으며, 이를 활용한 간단한 예시는 아래와 같다const char *str = "12345";// atoi 계열 함수int x = atoi(str);// sscanf 사용int y;sscanf(str, "%d", &y);c++에서는 이와 비슷한 방법으로 stoi() 및 타입 캐스팅 그리고, 반복자를 활용하여, 데이터 변환을 할 수 있는데, 그 중에서 stoi() 계열 함수가 있다.c++에서의 stoi()c++에서 stoi() 함수는 문자열을 정수 값으로 변환하는데, stoi()는 이름에서 알 수 있듯이 string ..

    [Java] long float의 값 뒤에 L, F을 붙여야 하는 이유

    long 타입으로 변수를 선언하고 값을 초기화 할 때에는 반드시 리터럴 뒤에 소문자나 대문자 L을 붙여주어야 한다. 아래 에러가 뜨는 이유는 2147483648 이라는 값은 변수 lo에 저장하기 전에 임시로 메모리에 저장되는데, 이때 사용하는 기본 데이터 타입이 int 이고 허용 범위를 초과하는 리터럴은 임시로 저장하는 과정에서 에러가 나는 것이다. 이것을 해결하려면 아래와 같이 리터럴 끝에 l을 붙여주면 된다. float도 비슷한 맥락의 이유로 에러가 난다. float의 데이터 값을 변수에 저장하기 전에 이 값을 메모리에 임시로 저장하는데, 이때 저장되는 타입이 double이다. double은 8 바이트의 데이터 타입이고, float는 4 바이트다. 1199.80이라는 수는 8바이트의 double 타입..