对于正整数而言:
- 二进制的话,可以通过位运算和二分快速确定一个整数的前导0个数。
- 十进制,可以把整数打印到一个字符数组里:
然后取第一个元素:
printf("%c",str[0]);
这样虽然输出也比较费时,但相对除法来说还是快了些。
对小于100000000于整数而言:
if(x/100000000) x/=100000000;
if(x/10000) x/=10000;
if(x/100) x/=100;
if(x/10) x/=10;
return x;
int start = Convert.ToInt32(().Substring(0, 1));
int i = (386792);
while(i >= 10)
i /= 10;
int firstDigit = (int)(()[0]) - 48;
int start = number == 0 ? 0 : number / (int) (10,(Math.Log10((number))));
int temp = i; while (temp >= 10) { temp /= 10; }
public int GetFirstDigit(int number) { number = (number); <- makes sure you really get the digit! if (number < 10) { return number; } return GetFirstDigit((number - (number % 10)) / 10); }