布思算法Java实现

 1     public String multiply(String Q,String M){
 2         char Q0 = '0';
 3         String A = get01(Q.length(),"0");
 4         for (int i=0;i<Q.length();i++){
 5             String QQ0 =Q.charAt(Q.length()-1)+""+Q0; 7             if (QQ0.equals("10")){
 8                 A=substract(A,M).substring(1);
 9             }
10             else if (QQ0.equals("01")){
11                 A=add(A,M).substring(1);
12             }
13             String temp = shiftRight(A+Q+Q0);
14             A=temp.substring(0,A.length());
15             Q = temp.substring(A.length(),2*A.length());
16             Q0 = temp.charAt(temp.length()-1);
17         }
18         return A+Q;
19     }

 

posted @ 2018-12-20 10:36  Edwin_Xu  阅读(149)  评论(0编辑  收藏  举报