Redian新闻
>
不错的读书网站
avatar
不错的读书网站# Living
c*t
1
Write a function to perform integer division without using either the / or *
operators. Find a fast way to do it.
avatar
s*t
3
就是让你把小学二年级用的除法拿程序写出来

*

【在 c*********t 的大作中提到】
: Write a function to perform integer division without using either the / or *
: operators. Find a fast way to do it.

avatar
c*t
4
能不能具体的说说?
比如 98 除以 5, 程序如何写?
谢谢!

【在 s*********t 的大作中提到】
: 就是让你把小学二年级用的除法拿程序写出来
:
: *

avatar
c*t
5
用减法
int divide(int target, int divisor)
{
int result = 0;
while (target - divisor > 0)
{
target -= divisor;
++result;
}
return result;
}

【在 c*********t 的大作中提到】
: 能不能具体的说说?
: 比如 98 除以 5, 程序如何写?
: 谢谢!

avatar
c*p
6
google booth

*

【在 c*********t 的大作中提到】
: Write a function to perform integer division without using either the / or *
: operators. Find a fast way to do it.

avatar
c*p
7
假设A/B:
#include
int main()
{
int A, B, tB, tA, Q, R;
scanf("%d", &A);
scanf("%d", &B);
tB = B;
if (A{
Q = 0;
R = A;
}
else
{
while(A>tB)
{
tB<<=1;
}
tB >>= 1;
tA = A;
Q = 0;
while(tB >= B)
{
Q <<= 1;
if(tA >= tB)
{
tA -= tB;
Q += 1;
}
tB >>= 1;
}
R = tA;
}
printf("%d / %d = %d ... %d\n", A, B, Q, R);
return 0;
}

*

【在 c*********t 的大作中提到】
: Write a function to perform integer division without using either the / or *
: operators. Find a fast way to do it.

avatar
c*p
8
假设A和B都正。
这个不是booth算法,但是比一个个减要快。
booth带预测,运算量更小一些。
可以扩展为支持+和-的运算

【在 c****p 的大作中提到】
: 假设A/B:
: #include
: int main()
: {
: int A, B, tB, tA, Q, R;
: scanf("%d", &A);
: scanf("%d", &B);
: tB = B;
: if (A: {

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。