一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java中冪指數值的運算代碼解析

java中冪指數值的運算代碼解析

2021-03-03 13:57尋找現實扭曲力場 Java教程

這篇文章主要介紹了java中冪指數值的運算代碼解析,具有一定借鑒價值,需要的朋友可以參考下。

說到冪指數的運算我們就會用到Math.pow(doublea,doubleb),返回的結果是a的b次方。

在Java中,當我們計算2的n次方時,可以直接用Math.pow來計算。非常方便。

但是,已知一個冪的結果為M和冪的底數a,現在要求冪的指數n。Math中提供的有log(double)方法,但是只能傳入一個參數,即M。那么問題來了,如何簡單、方便、快捷的達到我們的要求呢?答案如下:

n=Math.log(M)/Math.log(a);

這個方法可以滿足我們大多數冪指數的計算,但是每次訪問的值和傳入的值都是double,自己不想去轉的話怎么辦,我們有一種新的方案。

方案前提:冪指數的底數是2的倍數。

這里我們就用到了移位運算(移位運算是基于二進制來的,所以方案前提就是這個依據),如我們求2的3次方,我們可以用2<<(3-1)來計算出結果。

4的2次方,我們先要把4轉化為2的2次方,再來2<<(4-1)來計算出結果。

下面這個方法實現的效果是我們傳入一個2的倍數相加的兩個數,比如12(是4+8),我們把它自動計算出[4,8]

再比如18,我們把它計算出[2,16]

再比如22,我們把它計算出[2,4,16]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
   * 以2的次方開始的轉換成整型數組,字符串數組
   * @param sum 傳入派系的值,可以是一個派系的值,也可以是多個派系相加的值
   *      2^1 + 2^2 這種
   * 突然忘記移位操作也是一種指數冪的運算
   * @return
   */
private static int[] toUgroupArray(int sum){
    if(sum < 0){
        System.out.println("you have an eroor code");
    } else if(sum == 0) {
        System.out.println("you have no choise code");
    } else{
        String binaryCode = Integer.toBinaryString(sum);
        System.out.println("binary code:"+binaryCode);
        int index = binaryCode.length() -1;
        String str = "";
        for (int i=0;i<binaryCode.length();i++){
            if(binaryCode.charAt(i) == '1'){
                str = str + index +",";
            }
            index --;
        }
        str = str.substring(0, str.length()-1);
        System.out.println(str);
        String[] strArray = str.split(",");
        int[] result = new int[strArray.length];
        //也可以返回一個字符數組
        //String[] result2 = new String[strArray.length];
        for (int i=0;i<strArray.length;i++){
            //result[i] = (int)Math.pow(2, Double.parseDouble(strArray[i]));
            result[i] = 2 << (Integer.parseint(strArray[i])-1);
        }
        return result;
    }
    return null;
}

總結

以上就是本文關于java中冪指數值的運算代碼解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:http://blog.csdn.net/pearyangyang/article/details/48808089

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品推荐国产麻豆剧传媒 | 操老逼 | 啪啪模拟器 | 久久99热成人精品国产 | 成年人免费在线视频 | futa文 | 福利国产精品 | 狠狠燥| 国产精品一区二区久久不卡 | 国产麻豆传媒在线观看 | 国产精品久久久久久久久免费观看 | 四虎成人4hutv影院 | 狠狠的撞进去嗯啊h女强男视频 | 天天操天天干天天舔 | 国内精品自产拍在线观看91 | 国产90后美女露脸在线观看 | 国产精品va在线观看无 | 九九热国产视频 | 亚洲精品人成网在线播放影院 | 九九精品视频在线免费观看 | 午夜福到在线2019 | 2015小明台湾永久区域免费 | kayden kross喷水 | 欧美老肥妇bbb| 97国产蝌蚪视频在线观看 | 好大好猛好深好爽视频 | 99re精品在线| 精品国产综合区久久久久久 | 色欧美在线 | 办公室强行丝袜秘书啪啪 | 视频免费看 | 精品国产乱码久久久久久人妻 | yjsp妖精视频在线观看免费 | 丁香六月色 | 京东热在线观看 | 国产婷婷综合丁香亚洲欧洲 | 国产精品美女福利视频免费专区 | 日本黄大片影院一区二区 | 国产精品久久久久久久久久久搜索 | 青青国产在线观看 | 日本一级不卡一二三区免费 |