亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java中的Integer的toBinaryString()方法實(shí)例

 更新時(shí)間:2013年12月18日 15:51:23   作者:  
這篇文章主要介紹了java中的Integer的toBinaryString()方法實(shí)例,有需要的朋友可以參考一下

在一次面試的過程中,遇到過這樣的題目,題目的大概意思是:讓寫出Integer類中的toBinaryString()方法

也就是說,把Integer轉(zhuǎn)換為Binary的過程寫出來

但是我蒙的,在查了JDK的源碼,發(fā)現(xiàn)了這個(gè)很好用的方法,在此給大伙看看

下面是我做的一個(gè)測試:

復(fù)制代碼 代碼如下:

/**
 *
 */
package com.b510.test;

/**
 * @author Hongten
 * @date 2013-12-15
 */
public class TestF {

    public static void main(String[] args) {
        //output:1000
        System.out.println(toBinaryString(8));
        //printInfo();
    }

    /**
     * 這里是做&操作的測試,也就是說,在1&*(其中*代表其他數(shù)字,如:0,1,2,3,4...)操作的時(shí)候
     * 他們是進(jìn)行二進(jìn)制之間的&(與)運(yùn)算操作。只有當(dāng)*為奇數(shù)(1,3,5,7...)的時(shí)候,1*&操作才可以返回:1
     * 其他情況返回:0
     */
    private static void printInfo(){
        for(int i =0; i< 10; i++){
            System.out.println("i= " + i + "         "+(i & 1));
        }
        /*
        output:
        i= 0         0
        i= 1         1
        i= 2         0
        i= 3         1
        i= 4         0
        i= 5         1
        i= 6         0
        i= 7         1
        i= 8         0
        i= 9         1
        */
    }

    public static String toBinaryString(int i) {
        return toUnsignedString(i, 1);
    }

    /**
     * Convert the integer to an unsigned number.
     */
    private static String toUnsignedString(int i, int shift) {
        char[] buf = new char[32];
        int charPos = 32;
        int radix = 1 << shift;
        int mask = radix - 1;
        do {
            //這里的mask一直為:1,所以當(dāng)i為奇數(shù)的時(shí)候,這里"i & mask"操作才為:1
            //否則返回:0
            //System.out.println(i & mask);
            buf[--charPos] = digits[i & mask];
            i >>>= shift;//右移賦值,左邊空出的位以0填充
        //System.out.println(buf);
        //System.out.println(charPos);
        //System.out.println(i);
        } while (i != 0);
        return new String(buf, charPos, (32 - charPos));
    }

    final static char[] digits = {
        '0' , '1' , '2' , '3' , '4' , '5' ,
        '6' , '7' , '8' , '9' , 'a' , 'b' ,
        'c' , 'd' , 'e' , 'f' , 'g' , 'h' ,
        'i' , 'j' , 'k' , 'l' , 'm' , 'n' ,
        'o' , 'p' , 'q' , 'r' , 's' , 't' ,
        'u' , 'v' , 'w' , 'x' , 'y' , 'z'
        };
}

在代碼中,其實(shí)我們可以簡化一下digits數(shù)組,因?yàn)槲覀冎粫?huì)用到數(shù)組:digits[0],digits[1]

所以:

復(fù)制代碼 代碼如下:

final static char[] digits = {
        '0' , '1'
        };

方法里面用到了移位操作和&操作,這兩個(gè)操作是關(guān)鍵。

相關(guān)文章

  • JAVA數(shù)組中五種常見排序方法整理匯總

    JAVA數(shù)組中五種常見排序方法整理匯總

    本文給大家分享五種常用的Java數(shù)組排序方法整理,每種方法結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-05-05
  • Java 如何將網(wǎng)絡(luò)資源url轉(zhuǎn)化為File文件

    Java 如何將網(wǎng)絡(luò)資源url轉(zhuǎn)化為File文件

    這篇文章主要介紹了Java 如何將網(wǎng)絡(luò)資源url轉(zhuǎn)化為File文件的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • java線程池ExecutorService超時(shí)處理小結(jié)

    java線程池ExecutorService超時(shí)處理小結(jié)

    使用ExecutorService時(shí),設(shè)置子線程執(zhí)行超時(shí)是一個(gè)常見需求,本文就來詳細(xì)的介紹一下ExecutorService超時(shí)的三種方法,感興趣的可以了解一下
    2024-09-09
  • JavaWeb實(shí)現(xiàn)郵件發(fā)送接收功能

    JavaWeb實(shí)現(xiàn)郵件發(fā)送接收功能

    這篇文章主要為大家詳細(xì)介紹了JavaWeb郵件發(fā)送接收功能的實(shí)現(xiàn),郵件發(fā)送和接收功能是非常常用的功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • JavaCV使用ffmpeg實(shí)現(xiàn)錄屏功能

    JavaCV使用ffmpeg實(shí)現(xiàn)錄屏功能

    這篇文章主要介紹了JavaCV如何使用ffmpeg實(shí)現(xiàn)錄屏功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 使用Spring Cache設(shè)置緩存條件操作

    使用Spring Cache設(shè)置緩存條件操作

    這篇文章主要介紹了使用Spring Cache設(shè)置緩存條件操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解java 單例模式及方法總結(jié)

    詳解java 單例模式及方法總結(jié)

    這篇文章主要介紹了詳解java 單例模式及方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • java Nio使用NioSocket客戶端與服務(wù)端交互實(shí)現(xiàn)方式

    java Nio使用NioSocket客戶端與服務(wù)端交互實(shí)現(xiàn)方式

    這篇文章主要介紹了java Nio使用 NioSocket 客戶端與服務(wù)端交互實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式

    MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式

    今天小編就為大家分享一篇關(guān)于MyBatis Map結(jié)果的Key轉(zhuǎn)為駝峰式,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • SpringDataJpa寫原生sql遇到的問題及解決

    SpringDataJpa寫原生sql遇到的問題及解決

    這篇文章主要介紹了SpringDataJpa寫原生sql遇到的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論