JAVA基本資料型別轉換

2021-06-21 08:27:38 字數 1446 閱讀 4171

**:

boolean型別不可以轉換成其他的資料型別;

● 整形、字元型、浮點型的資料在混合運算中相互轉換,轉換時遵循如下規則:

■ 容量小的型別自動轉換成容量大的資料型別;資料型別按容量大小排序如下:         byte,short,charàintàlongàfloatàdouble

要注意的是byte,short,char之間不會相互轉換,他們三者在計算時首先轉換 為int型別。byte的取值範圍是-128~127

n  容量大的資料型別轉換為容量小的資料型別時,要加上強制轉換符,但可能造成精

度降低或者溢位;使用時候要格外注意。

n  有多種型別的資料混合運算時,系統首先自動地將所有型別轉換成容量最大的那個

資料型別,然後再進行計算。

● 實數常量(如:1.2)預設為double。(故:float f = 22.2;是錯誤的)

● 整數型別(如:123)預設為int。

可以直接把乙個int型別的數賦值給乙個byte,short,char型別的變數,但是不能超過其對應的範圍(直接擷取最後的乙個位元組)。

要理解容量大的數強制轉換成容量小的數的實質是擷取後面的位元組(如:int型別轉換成double型別的時候,是直接取int型別中4個位元組的最後乙個位元組),但是double轉換成float型別,由於double中存在小數點的情況,因此直接加強制轉換時轉換不過來的(infinity)。

long型別8個位元組,int型別4個位元組,short型別2個位元組,byte型別1個位元組。

float型別4個位元組,double型別8個位元組。

l  典型問題:

(1)  double d = 1e200;//列印顯示infinity;

(2)  float f = 11.1//錯誤;預設為double型別,應該修改為float f = 11.1f;

(3)publicclasstestdatakind }

(4) byte b1 = (byte)128;

byte b2 =(byte)-129;

system.out.println(b1);

system.out.println(b2);

列印結果:-128和127

分析:byte只有八位,只能表示-128—127;計算機中負數的儲存方式是補碼。對負數的絕對值的二進位制值取反,再加一,即為負數的二進位製碼。如:-1的絕對值1的二進位製碼為00000001,取反得到11111110,再加一為11111111。-128的絕對值128的二進位製碼為10000000,取反得到01111111,再加一為10000000,正好是byte的最大表示範圍。而-129的絕對值129的二進位製碼為10000001,取反後得01111110,加一後得01111111,最後結果就是127

Java基本資料型別轉換

1 boolean型別不可以轉換成其他的資料型別,其他型別也不能轉換為boolean型別。2 整形,字元型,浮點型的資料在混合運算中可以互相轉換。容量小的型別自動轉換成容量大的資料型別。資料型別按容量大小排序為 byte,short,char int long float double byte,s...

JAVA基本資料型別轉換

boolean不能轉換成其他的資料型別 容量小的自動轉換成容量大的,而容量大的轉換成容量小的時候就要加上強制轉換符,可能造成精度降低或者溢位。容量自大到小排列順序 byte,short,char int long float double byte,short,char之間不會相互轉換,計算時候首先...

java基本資料型別轉換

關於基本資料型別轉換規則 1.8種基本資料型別除boolean型別之外都可以相互轉換.2.小容量向大容量轉換叫做自動型別轉換 byte3.byte,short,char做混合運算的時候,各自都先轉換成int在做運算 4.大容量向小容量轉換是強制型別轉換,需要加強制轉換符,編譯雖然通過,執行期可能損失...