天天看點

java變量、進制、資料類型-20141227002

1、  java變量

1.1    變量的含義

變量就是讓程式語言更好表達。

1.2    java中的變量

每一個變量都屬于一種資料類型

Java強類型語言,使用規則如下:

           變量必須聲明,并且初始化以後才能使用;

           變量必須有明确的類型;

           變量不能重複的定義,即是同一個變量明不能重複的聲明類型;

變量初始化=聲明+指派;

聲明即使明确變量的資料類型;

未初始化使用變量,編譯報錯。

1.3    變量的作用域

在聲明的地方開始,到塊結束;離開變量的作用域,變量将會被收回。

一般一個{}表示一個塊,在塊之外調用就會報編譯錯誤,因為變量已經收回。

2、  進制轉換基礎

2.1  10進制

23678(10迚制) = 2*10000+3*1000+6*100+7*10+8*1

= 2*10^4 + 3*10^3 + 6*10^2 + 7*10^1 +8*10^0 = 23678

10稱做"基數",10^n(10的n次幂)被稱作"權"

2.2  2進制

2進制是2作為基數,2^作為權;

0100 0001 = 2*2^6+2*2^0=65

2.3  補碼基礎

A、計算機中正數和負數之間的關系是取反加一:~3+1=-3(~3表示3取反),

0011 取反 1100 + 1 = 1101 第一個1是符号位表示負數,1101二進制對應十進制的-3;

B、補碼運算時封閉的:預算範圍包含在補碼範圍之内,超出範圍溢出如:

1111 + 1 = 0000

C、4位二進制補碼最多表示2^4(16)個數,數的範圍是-8~7;

     8位二進制補碼最多表示2^8(256)個數,-128~127;

  16位二進制補碼最多表示2^16(65536)個數,-32768~3276;

32位二進制補碼最多表示2^32個數,-2G~2G-1;

0000 1111 = 1*2^3+1*2^2+1*2^1+1*2^0=15; 正數

1111 1001 取反 0000 0110 +1 = 0000 0111 = 7 (-7)負數

計算機中二進制轉十進制:

以0開頭的直接将二進制轉換為十進制;

以1開頭,按位取反,末尾加1,轉換為10進制,取負号;

2.4  Java中的2進制規則

Java内部隻有二進制補碼,計算機内部資料以二進制補碼表示。

Java内部采用補碼運算,自動發送上溢出(乘法)和下溢出(除法)。

Java内部沒有十進制,但是java盡量按照人類的習慣輸入輸出。

補碼的負數,最高位為1,也叫符号位。

2.5  16進制

十六進制,16是基數,16^是權,十六進制是二進制的簡寫;

如11010010 = d2

以0開頭是八進制,以0x開頭的是十六進制。

3、  Java資料類型

Java中資料類型分為引用類型和資料基本類型,基本類型有8中。

3.1    8中基本資料類型

整型:byte、short、int、long

浮點型:float、double

字元型:char

Boolean型:boolean

3.2     整型

一個位元組8位補碼;

Byte 8位補碼,兩個位元組,表示範圍-2^7~2^7-1。

Short 16位補碼,4個位元組,表示範圍-2^15~2^15-1。

Int 32 位補碼,8個位元組,表示範圍-2G~2G-1。

Long 64位補碼,16個位元組,表示範圍-2^15~2^15-1。

數字字面量預設是int型,如果不超出聲明類型的範圍,可以給小類型直接指派。

Java底層byte、short按照32位計算,輸出的二進制擴充符号位為32為輸出。

Long型字面量要使用L字尾,字面量預設是int型,超出int數字範圍的的要加L結尾。

3.3    浮點數類型

浮點數原理:二進制科學計算法

10111=1.0111*(2^100)   100=4

Float 共32位(與int相同)其中1符号位,指數8位,位數32位,其精度是32位;小數以位數長度表示精度,故int的精度是31位比float的23位精度要高,但是int的範圍是-2^31~2^31-1,float的範圍是-2^128~2^128-1;

Int類型的資料表示的資料範圍比float的資料範圍小,但是精度比float的精度高。

Float的精度過低,是以一般很少用,一般用double類型。

Double類型占64位16個位元組,1符号位,11位指數,52位位數數。

Double的比int精準不如long,範圍卻遠遠大于long         浮點數的字面量預設是double

3.4    字元類型

字元型是16位無符号整型,是一個二進制數,這個數值是一個字元的Unicode編碼值;

Unicode是全球範圍内的編碼方法;

Java char的範圍是0~65535不能表示全部的Unicode,隻能表示Unicode的常用部分

程式中為一個字元指派,字元的字面量使用單引号,可以為char指派的有字元、數字、符号。

3.5    Boolean類型

4、  資料類型轉化

自動類型轉換

正方向,小類型到大類型的轉換會自動完成。自動類型轉換也叫"隐式類型轉換", 是自動發生的, 一般不需要處理。規則是:符号位會自動擴充, 負數補1, 正數補0, 保證補碼數值不變,注意:整數到浮點數轉換會損失精确度。

強制類型轉換

強制類型轉換,也叫顯示類型轉換, 是按照反方向迚行的轉換, 這種轉換會溢出, 或者損失精度,要注意資料的範圍。

5、  Java控制台輸出

繼續閱讀