變量和數制進制之間的相互轉換以及八大基本數據類型

* 變量:

 * 它代表了內存裏的一塊存儲區域,這塊內存區域的值是可以變化的

 * 當變量的值變化時,變的不是以前指向的內存,而是內存的二進制表現形式

 * 1、變量的聲明格式:

 * 變量類型   變量名=變量值;

 * 注意:變量可以只聲明,不賦值

 * 2、變量的創建位置:

 * 類體內函數外---全局變量  

 * 函數內---局部變量

 * 靜態代碼塊和構造代碼塊內的變量也可以看作局部變量

 * 3、變量命名時,不要重名,並非必須(涉及內存)

 * 4、變量的類型:

 * 基本的數據類型

 * 對象類型

 * 數組

 * 內部類--(嚴格意義上講,不屬於變量類型,但是它的使用和變量很相似)

 

 *

 */

public class A_varDemon {

   public static byte b=1;

   public static void test(){

      b=2;

   }

   public static void main(String[] args){

      test();

   }

}

* 進制:十進制--89

 * 二進制:電信號--兩種狀態  001001

 * 進制轉換

 * 十進制轉二進制

 * 17----10001

 * 轉換方式,將十進制數據除以2,直到0,取餘數的反序

 * 二進制轉十進制

 * 1、從右到左,計算每個二進制位的對應的十進制數用

 * 2^(n-1)*對應的標記

 * 2、將這些數字相加

 * 二進制的缺點:不容易表示

 * 八進制---將三個二進制位和爲一位

 * 十六進制---將四個二進制位和爲一位

 * 十進制和八進制之間的轉換:

 * 除以8,取餘,反序

 * 十六進制和十進制轉換

 * 除以十六去餘數

 *

 * 大進制轉小進制,直接除以小進製取餘數,反序

 * 小進制轉大進制,轉成十進制,再轉相應的進制

 

 *

 */

public class A_VarDemon {

   //Java中直接輸出八進制和十六進制數字

   public static void test(){

      //直接輸出十進制數字

      int i=100;

      System.out.println("十進制:"+i);

      //Java中的八進制數字10,8進制的數以0開頭

      int j=010;

      System.out.println("8進制的010代表的十進制: "+j);

      //Java中的十六進制數字,十六進制以0x開頭

      int k=0xe;

      System.out.println("十六進制0xe代表的十進制:"+k);

   }

   public static void main(String[] args){

      test();

   }

}

* 二進制的正負數轉換

 * 二進制的表示形式:分爲有符號表現形式和無符號表現形式

 *

 * 無符號表現形式:只有正數和0,沒有負數

 * 有符號表示形式:

 * 1.包括正數負數和0

 * 2.二進制中從左到右的第一位,被解析爲標誌位,如果是1,代表負數,否則是正數

 *

 * 變量類型:

 * 當聲明一個變量類型時候,編譯器就會給這個變量分配一個固定長度的內存,比如byte類型--長度是8個二進制位。

 *

 * byte爲例,進行正負數轉換

 * 1.寫出正數的表現形式

 * 0000 1010

 * 2.反碼

 * 1111 0101

 * 3.反碼加1,從右到左

 * 1111 0110

 *

 * 14---負數的表現形式

 * 0000 1110

 * 1111 0001

 * 1111 0010

 *

 * 將二進制正數轉換成負數

 * 1.1111 0010

 * 2.1

 *  1111 0001

 * 3.反碼

 *  0000 1110

 

 *1100

 *0111 11

 *00011

 *10010 17

 */

public class B_VarDemon {

   public static byte b=10;

   public static void test(){

      //調用JDK內置的類,實現十進制轉二進制

      String str=Integer.toBinaryString(-14);

      System.out.println(str);

   }

   public static void main(String[] args){

      test();

   }

}

************************* 面試題********************************

 * 八大基本數據類型

 * 整數型:Byte short intlong

 * 浮點型:float double

 * 字符型:char

 * 布爾型:boolean

 *

 * 各個數據類型分配的內存空間大小

 * byte    8個二進制位       1個字節最大值:127 2^7-1  最小值:-128  2^7

 * short   16個二進制位      2個字節最大值:2^15-1    最小值:2^15

 * int     32個二進制位      4個字節

 * long    64個二進制位      8個字節

 * 雙精度

 * float   32個二進制位      4個字節

 * double  64個二進制位     8個字節

 * char    16個二進制位---字符---無符號的

 * boolean 標記--只有兩個值truefalse

 *

 * String===字符串

 * 1.重要,最常用

 * 2.它不屬於基本數據類型--類類型

 

 *

 */

 

public class A_VarDemon {

   public static byte a=1;

   public static short b=2;

   public static int c=3;

   public static long d=4;

   public static long d2=100000000000L;

   public static float e=5.0F;//當小數定義爲float類型的時候,在後面必須寫一個F或者f;告訴編譯器,不要使用默認的數據類型

   public static double f=0.1;

   //第一種賦值

   public static char g='1';

   //第二種賦值

   public static char g2=100;

   public static boolean h=true;

   public static void mian(String[] args){

      //Java中當編寫一個常量,由於沒有聲明常量類型,但系統又要分配一塊內存空間,這個內存空間有默認值,整形的默認值是int,浮點型是double

      //所以,聲明float類型的數據時,變量值被系統默認爲double類型的,因此需要顯示的加F或者f後綴,告知編譯器不使用默認的分配類型,而long

      //型的聲明的數據賦值,如果值大於了int類型的取值範圍,那麼也需要使用Ll做標記,告知編譯器不可以使用默認的int

      System.out.println(12);

   }

}

packagenet.xadaily.a.var;

public class A_VarTest1 {

   public static int a=34;

   public static int b=5;

   public static void test(){

      System.out.println("a+b="+(a+b));

      System.out.println("a*b="+(a*b)); 

      System.out.println("a-b="+(a-b));

      System.out.println("a/b="+(a/b));

      System.out.println("a%b="+(a%b));

      System.out.println("++a="+(++a));

      System.out.println("a--="+(b--));

   }

   public static void main(String[] main){

      test();

   }

}

輸出結果:

a+b=39

a*b=170

a-b=29

a/b=6

a%b=4

++a=35

a--=5

public class A_VarTest2{

   public static int a=22;

   public static int b=33;

   public static void test(){

      int sum=0;

      for(int i=1;i<=a;i++)

      {

        switch(i){

        case 22: System.out.println("循環結束");break;

        }

        sum=sum+a;

      }

      System.out.println("22a="+sum);

      int j=0;

      while(j<b)

        j++;

      System.out.println("j="+j);

     

   }

   public static void testif(){

      if(a>b)

        System.out.println("a大於b");

      else

        System.out.println("a小於b");

   }

   public static void main(String[] args){

      test();

      testif();

   }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章