⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tfix24.cc

📁 早期freebsd实现
💻 CC
字号:
//// testFix24.cc : test Fix24/48 classes//#include <Fix24.h>// This a set of inlines instead of a macro to force the side effects// of evaluating y to happen before x is printed.inline void check(char *x, int y) { cout << x << " = " << (y) << "\n"; }inline void check(char *x, double y) { cout << x << " = " << (y) << "\n"; }inline void check(char *x, Fix24 y) { cout << x << " = " << (y) << "\n"; }inline void check(char *x, Fix48 y) { cout << x << " = " << (y) << "\n"; }void test24() {  cout << "Fix24: identities should be displayed\n";  Fix24 a;		check("0",a);  Fix24 b = .5;		check(".5",b);  Fix24 c = -.5;	check("-.5",c);  Fix24 d = .1;		check(".1",d);  Fix24 e = b;		check(".5",e);  check(".5",a = b);  check(".25",a = .25);  check("536870912",mantissa(a));  mantissa(a)=536870912;  check(".25",a);  check(".25",value(a));  check(".25",+a);  check("-.25",-a);  check(".1 + .5",d+b);  check(".1 - .5",d-b);  check(".1 * .5",d*b);  check(".1 *  3",d*3);  check(".1 * -3",d*-3);  check(".1 / .5",d/b);  check(".1 << 1",d<<1);  check("-.5 >> 2",c>>2);  check(".1 == .5",d == b);  check(".1 != .5",d != b);  check(".1 > .5",d > b);  check(".5 <= -.5",b <= c);  cout << "Fix24: range errors ignored and overflows saturated\n";  set_Fix24_overflow_handler(Fix24_overflow_saturate);  set_Fix24_range_error_handler(Fix24_ignore);  Fix24 f = 1.1;	check("1.1",f);  Fix24 g = .7;  check(".7 + .5",g+b);  check("-.5 - .7",c-g);  check(".5 / .1",b/d);}void test48() {  cout << "Fix48: identities should be displayed\n";  Fix48 a;		check("0",a);  Fix48 b = .5;		check(".5",b);  Fix48 c = -.5;	check("-.5",c);  Fix48 d = .1;		check(".1",d);  Fix48 e = b;		check(".5",e);  check(".5",a = b);  check(".25",a = .25);  twolongs t;  t = mantissa(a);  check("536870912",t.u);  check("0",t.l);  mantissa(a)=t;  check(".25",a);  check(".25",value(a));  check(".25",+a);  check("-.25",-a);  check(".1 + .5",d+b);  check(".1 - .5",d-b);  check(".1 *  3",d*3);  check(".1 * -3",d*-3);  check(".1 << 1",d<<1);  check("-.5 >> 2",c>>2);  check(".1 == .5",d == b);  check(".1 != .5",d != b);  check(".1 > .5",d > b);  check(".5 <= -.5",b <= c);  cout << "Fix48: range errors reported and overflows reported\n";  set_Fix48_overflow_handler(Fix48_warning);  set_Fix48_range_error_handler(Fix48_warning);  Fix48 f = 1.1;	check("1.1",f);  Fix48 g = .7;  check(".7 + .5",g+b);  check("-.5 - .7",c-g);}main() {  test24();  test48();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -