Java基本資料型別及之間的轉換

2021-06-21 13:35:37 字數 1842 閱讀 4143

基本型別可以分為三類:

字元型別char;

布林型別boolean;

數值型別byte、short、int、long、float、double。

數值型別又可以分為整數型別byte、short、int、long和浮點數型別float、double

1、布林型

boolean

型別不可以轉換成其他的資料型別,不可以以0或非0的數字代替;

2、整數型

整型預設為int型,而long型別表示的範圍要超出int表數範圍,所以,宣告long型別時,常量後要加l

如:long l1=12345678  //  數值在int範圍之內,還不會出錯

long l2=8888888888;//  數值在int範圍之外,會出錯

long l3=8888888888l; //正確

3、浮點型

浮點型預設為double,所以float型別宣告時後面需要加f/f ; 或者用強制轉換符

如:float f1 = (float)0.1;

float f2 = 0.1f;

二、基本資料型別轉換:

各資料型別按容量大小(表數範圍大小)由小到大排列為:

byte, short, char  ——int ——long——float——double

1.轉換時遵循的原則:

1)容量小的型別自動轉換為容量大的型別;

2)容量大的型別轉換為容量小的型別時,要加強制轉換符;

3)byte,short,char之間不會互相轉換,並且三者在計算時首先轉換為int型別;

4)實數常量預設為double型別, 整數常量預設為int型別;

*  字元型 為什麼也能和 整形、浮點型進行運算呢? 

答:  字元型在機器內部也是數字。進行計算時,先獲得字元的asck碼,然後再進行計算。

2.轉換舉例: 

int i1=123;

int i2=456;

double d1 = (i1+i2)*1.2             //容量小的型別自動轉換為容量大的型別

byte b1=1;

byte b2=2;

byte b3=(byte)(b1+b2);        //byte,short,char在計算時首先轉換為int,大容量(int)轉換為小容量的型別(byte)時要加強制轉換符

典型問題:

(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 直接轉換 先來說個例子 500毫公升的礦泉水與5公升的桶裝水,你將礦泉水瓶裡面的水倒進空的桶裝水桶裡面,是不是可以裝下沒有問題 這個就是直接轉換,小容量往大容量賦值 例如 int a 100 long b a float c ...

Java基本資料型別之間的轉換

我們在平時開發過程中經常會處理到不同型別直接相互轉換的情況,深入了解他們的關係十分重要。我們首先以byte型別為例 public class datatypechangetest public static void main string args 測試基本資料型別與byte之間轉換關係 1.by...

Java 基本資料型別之間的轉換

一 資料型別 1.布林型 boolean true false,不可以以0或非0的數字代替 不能進行資料之間的轉換。2.整數型別 整型預設為int型,而long型別表示的範圍要超出int表數範圍,所以,宣告long型別時,常量後要加l l 如 long l1 12345678 數值在int範圍之內,...