使用移位运算符拆分一个大的十进制数
发布时间:2020-12-16 07:09:45 所属栏目:百科 来源:网络整理
导读:How to write a program in c to split a large number using shift operator ? 例如,我们需要仅使用位移操作将12345678这样的大数字分成两个较小的数字1234和5678而不使用正常的n = n * 10和n = n?技术.你会怎么做? 解决方法 您可以使用标准长除法算法并
例如,我们需要仅使用位移操作将12345678这样的大数字分成两个较小的数字1234和5678而不使用正常的n = n * 10和n = n?技术.你会怎么做? 解决方法
您可以使用标准长除法算法并使用12345678和10000调用它.如果要将其优化为仅除以10000,则手动预先评估b == 10000.
void div(int a,int b) { int d,res; d = 1; res = 0; while (b > 0 && b < a) { b <<= 1; d <<= 1; } do { if (a >= b) { a -= b; res += d; } b >>= 1; d >>= 1; } while (d); printf("Result: %d,reminder: %dn",res,a); } int main() { div(12345678,10000); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |