将数字除以3,而不使用*,/,+,-,%运算符

你会如何除以3为数字,没有使用*/+-%,运营商?

该数字可以签名也可以不签名。


凤凰求蛊
浏览 687回答 3
3回答

慕尼黑5688855

您可以使用(取决于平台的)内联汇编,例如,对于x86 :(也适用于负数)#include <stdio.h>int main() {&nbsp; int dividend = -42, divisor = 5, quotient, remainder;&nbsp; __asm__ ( "cdq; idivl %%ebx;"&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : "=a" (quotient), "=d" (remainder)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : "a"&nbsp; (dividend), "b"&nbsp; (divisor)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; : );&nbsp; printf("%i / %i = %i, remainder: %i\n", dividend, divisor, quotient, remainder);&nbsp; return 0;}
打开App,查看更多内容
随时随地看视频慕课网APP