你会如何除以3为数字,没有使用*,/,+,-,%,运营商?该数字可以签名也可以不签名。
3 回答
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
您可以使用(取决于平台的)内联汇编,例如,对于x86 :(也适用于负数)
#include <stdio.h>
int main() {
int dividend = -42, divisor = 5, quotient, remainder;
__asm__ ( "cdq; idivl %%ebx;"
: "=a" (quotient), "=d" (remainder)
: "a" (dividend), "b" (divisor)
: );
printf("%i / %i = %i, remainder: %i\n", dividend, divisor, quotient, remainder);
return 0;
}
添加回答
举报
0/150
提交
取消