为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

你会如何除以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;

}


查看完整回答
反对 回复 2019-10-12
  • 3 回答
  • 0 关注
  • 679 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信