How to write a program in c to split a large number using shift operator ?
例如,我们需要仅使用位移 *** 作将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: %d\n",res,a);}int main() { div(12345678,10000);}总结
以上是内存溢出为你收集整理的使用移位运算符拆分一个大的十进制数全部内容,希望文章能够帮你解决使用移位运算符拆分一个大的十进制数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)