二進制的前導的零——mooc《零基礎學Java語言》-(浙大翁凱)期末編程題


題目內容:

計算機內部用二進制來表達所有的值。一個十進制的數字,比如18,在一個32位的計算機內部被表達為00000000000000000000000000011000。可以看到,從左邊數過來,在第一個1之前,有27個0。我們把這些0稱作前導的零。

 

現在,你的任務是寫一個程序,輸入一個整數,輸出在32位二進制表達下它前導的零的個數。

 

輸入格式:

一個整數,在32位的整數可以表達的范圍內。

 

輸出格式:

一個整數,表達輸入被表達為一個32位的二進制數時,在第一個1之前的0的數量。

 

輸入樣例:

256

 

輸出樣例:

23

 

時間限制:500ms內存限制:32000kb
 
代碼實現:
/*
 * 題目內容:
計算機內部用二進制來表達所有的值。一個十進制的數字,比如18,在一個32位的計算機內部被表達為00000000000000000000000000011000。
可以看到,從左邊數過來,在第一個1之前,有27個0。我們把這些0稱作前導的零。

現在,你的任務是寫一個程序,輸入一個整數,輸出在32位二進制表達下它前導的零的個數。

輸入格式:
一個整數,在32位的整數可以表達的范圍內。

輸出格式:
一個整數,表達輸入被表達為一個32位的二進制數時,在第一個1之前的0的數量。

輸入樣例:
256

輸出樣例:
23

時間限制:500ms內存限制:32000kb
 */
import java.util.Scanner;

public class 二進制的前導的零 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        long num=in.nextLong();
        int count=0;
        if(num<0) 
        {
            System.out.print(0);
        }
        else
        {
            while(num!=0) 
            {
                num/=2;
                count++;
            }
            int zero=32-count;
            System.out.print(zero);
            
        }

    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM