📄 muldiv.c
字号:
/** Simple test for the mul/div/mod operations. type: int, char, short, long storage: static, attr: volatile,*/#include <testfwk.h>voidtestUnsignedModDiv(void){ {attr} {storage} unsigned {type} i; unsigned {type} result; i = 100; result = i/3; ASSERT(result == 33); result = i/12; ASSERT(result == 8); result = i%7; ASSERT(result == 2); result = i%34; ASSERT(result == 32);}voidtestUnsignedMul(void){ {attr} {storage} unsigned {type} i; unsigned {type} result; i = 37; LOG(("i*3 == 111 = %u\n", (int)(i*3))); result = i*3; ASSERT(result == 111); result = i*12; ASSERT(result == ((unsigned {type})444));}voidtestMul(void){ {attr} {storage} signed {type} i; signed {type} result; i = 5; LOG(("i*5 == 25 = %u\n", (int)(i*5))); result = i*5; ASSERT(result == 25); LOG(("i*-4 == -20 = %u\n", (int)(i*-4))); ASSERT(i*-4 == -20); i = -10; LOG(("i*12 == -120 = %u\n", (int)(i*12))); ASSERT(i*12 == -120); LOG(("i*-3 == 30 = %u\n", (int)(i*-3))); ASSERT(i*-3 == 30);}void mark(void){}voidtestDiv(void){ {attr} {storage} signed {type} i; i = 100; LOG(("i/5 == 20 = %u\n", (int)i/5)); ASSERT(i/5 == 20); LOG(("i/-4 == -25 = %u\n", (int)i/-4)); mark(); ASSERT(i/-4 == -25); i = -50; LOG(("i/25 == -2 = %u\n", (int)i/25)); ASSERT(i/25 == -2); LOG(("i/-12 == 4 = %u\n", (int)i/-12)); ASSERT(i/-12 == 4); //power of 2 ASSERT(i/4 == -12);}voidtestMod(void){ {attr} {storage} signed {type} i; // Disabled the LOG functions due to a bug in sdcc involving // vaargs. i = 100; // LOG(("i%%17 == 15 = %u\n", (int)(i%9))); ASSERT(i%17 == 15); // LOG(("i%%-7 == 2 = %u\n", (int)i%-7)); ASSERT(i%-7 == 2); //power of 2 ASSERT(i%-8 == 4); i = -49; // LOG(("i%%3 == -1 = %u\n", (int)i%3)); ASSERT(i%3 == -1); // LOG(("i%%-5 == -4 = %u\n", (int)i%-5)); ASSERT(i%-5 == -4); //power of 2 ASSERT(i%4 == -1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -