检索一个非常大的数字的第一位

Retrieve the First digit of an extremely large number

有一个int类型的数组。我必须乘以它的一些元素并报告乘积%(10^9 + 7) 和乘积的第一位数字。 我已经尝试使用 Java 的 BigInteger class,但报告的答案不正确。 我只想知道是否存在任何此类算法来跟踪第一个数字并且不使用 BigInteger。

这是我尝试过的。

c= (Prod.bitCount())*Math.log10(2);
c2= (int)c;
First= (Prod.divide(TEN.pow(c2))).intValue(); 
if(First/10 != 0) First/=10;
System.out.print(First+" ");
//finding Prod%M
System.out.print(Prod.mod(M)+"\n");
 int prod;
     ...
 int first = prod / 
    ((int)Math.pow(10, (int)Math.log10(prod)));

这是未经测试的,只是我脑海中浮现的,但应该给出了大概的想法。

int x = Integer.parseInt(""+prod.toString().charAt(0));

我想有人在上面发表了类似的评论。