你会如何除以3为数字,没有使用*,/,+,-,%,运营商?该数字可以签名也可以不签名。
3 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
您可以使用(取决于平台的)内联汇编,例如,对于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;
}
- 3 回答
- 0 关注
- 368 浏览
添加回答
举报
0/150
提交
取消