'컴퓨터/C/C++'에 해당되는 글 3건

  1. 2007/07/09 짜증나는 부동소수점.
  2. 2006/03/24 공용체로 레지스트 표현;;
  3. 2006/03/24 [c]Refrence card

짜증나는 부동소수점.

짜증나는 부동소수점. 컴퓨터/C/C++ 2007/07/09 14:13
1. atof(_ttof) 사용시 MT(VC2003)를 쓰게 되면 반환 값이 삐꾸가 될 수가 있음.
double temp = atof("72.975"); // 72.974999999999994
double temp = atof("72.875"); // 72.875000000000000

// MT를 쓰지 말던가.. 쓴다고 하면 값을 보정해 줘야 해주자. 어떻게? 자~알

2. 큰수 + 작은 수 더할 때.
double a = 8190185674868700.000;
double b = 8190185674868700.50000000001;

cout.setf(ios_base::fixed, ios_base::floatfield);
cout.precision(12);

cout << a + 0.50000000001 << endl; // 8190185674868701.000000000000
cout << b << endl;                       // 8190185674868700.000000000000

// 나눠서 해주면 괜찮다 -. -
a + 0.5;
a + 0.00000000001;




Posted by Hikasiru
TAG atof, VC, _ttof

공용체로 레지스트 표현;;

공용체로 레지스트 표현;; 컴퓨터/C/C++ 2006/03/24 22:18
#include

struct hregs{
    char al;
    char ah;
};

union regs{
    struct hregs h;
    int ax;
};

int main()
{
    union regs reg;

    reg.h.ah = 0x1A;
    reg.h.al = 0x2B;
    printf("ah:%X\n", reg.h.ah);
    printf("al:%X\n", reg.h.al);
    printf("ax:%hX\n", reg.ax);


    return 0;
}


Microsoft C에 있어서의 레지스터 표현
/* word registers */

struct WORDREGS {
    unsigned int ax;
    unsigned int bx;
    unsigned int cx;
    unsigned int dx;

    unsigned int si;
    unsigned int di;

    unsigned int clags;
};

/* byte registers */

struct BYTEREGS {
    unsigned char al, ah;
    unsigned char bl, bh;
    unsigned char cl, ch;
    unsigned char dl, dh;
};

/* general purpose registers union -
* overlays the corresponding word and byte registers.
*/

union REGS {
    struct WORDREGS x;
    struct BYTEREGS h;
};
Posted by Hikasiru

[c]Refrence card

[c]Refrence card 컴퓨터/C/C++ 2006/03/24 22:14
Posted by Hikasiru
1 
하단 사이드바 열기

BLOG main image