C语言如何不用除法取出整数中的一位数?

来源:互联网 发布:电玩城源码 编辑:程序博客网 时间:2024/05/16 13:03

https://www.zhihu.com/question/35791782/answer/64465266



作者:王维一
链接:https://www.zhihu.com/question/35791782/answer/64465266
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

//假定我们提取数位的数最大是个十位数。//这个是32位int的最大容量constint digitCount=10;voidgetDigit(//这是一个将输入的整数分解成十进制数位的函数unsigned int a,//被提取数位的数int digits[/*digitCount*/]//用于接收提取结果的,长度为digitCount的数组,数位从高到低排列){ unsigned intmask[digitCount]={1000000000, 100000000,10000000, 1000000,100000, 10000,1000, 100,10, 1};for(int i=0;i<digitCount;i++){digits[i]=0;while(a>=mask[i]){digits[i]++;a-=mask[i];} }}

0 0