Java 基礎學習02 資料型別轉換

2021-08-14 23:55:25 字數 1437 閱讀 2173

上述規則用幾個例子來解釋:

int a =1;

short sh1 = 1;

short sh1 = sh1 + 1;//錯誤

int c = a + sh1; //正確

short sh2 = a + sh1;//錯誤

long l1 = 111111111111l;

long l2 = 111111111111l;

long l3 = l1 + l2;//正確

大容器承接小容器按照轉換規則進行;

整型在進行運算時, 若資料型別小於int, 則會自動提公升為int (故long型別運算時並不會變成int型別)

float f1 = 1.2f;

float f2 = 2.3f;

float f3 = f1 + f2;//正確

float f4 = f1 + 1.2;//錯誤

float 型別之間進行運算時, 不會提公升型別, 但是浮點數常量預設為double型別, float型別與 double型別運算時, 型別提公升為double.

byte by1 = 1;

byte by2 = 1;

short sh = 1;

char ch = 『0』;

sh = by1 + sh;//錯誤

ch = by1 + ch// 錯誤

byte by3= by1 + by2;//錯誤

byte by3= by1 + 1;//錯誤

byte由於運算時公升級成int 型別, 編譯報錯; short, char 同byte, 並且這三個型別之間直接進行運算也都會報錯.

byte a = 1;

byte a += 1;//正確

擴充套件運算子隱含了強制轉換, 相當於 a = (byte) (a + 1);

byte b = 3 + 4;//正確
常量優化機制,編譯時,會優先計算3+4的結果,如果其結果在byte取值範圍內,則通過,如果不再byte的取值範圍內,則報錯

目標型別 變數名 = (目標型別) (被轉換的資料)

char ch = 『a』;

ch += 1;

int b = (int) ch;

強制轉換時, 要注意變數所能接受的數值範圍, 若超出了範圍, 會丟失精度.

int a1 = 10;

byte b1 = (byte) a1; //值為10

int a2 = 200;

byte b2 = (byte) a2; //值不為200, 丟失精度

由於byte 的數值範圍是 -128~127, 上述 b1的值 10 得以保留, 而 b2 則不能儲存 200的數值, 損失了精度.

java基礎 02資料型別

string的雜湊計算公式為 s 0 31 n 1 s 1 31 n 2 s n 1 取31為權 主要是因為31是乙個奇質數,所以31 i 32 i i i 5 i,這種位移與減法結合的計算相比一般的運算快很多。宣告陣列 string arrstr 推薦這種宣告方式 型別 變數 string arr...

Python基礎 02 資料型別

二進位制 八進位制 十六進製制 計算機中的資料,是以哪種進製儲存的?為什麼?計算機中的資料如何儲存?原碼反碼和補碼 列表 list 通過進行定義,可以儲存一系列的任意資料,可以新增刪除元素 lt 1,3.14,hello print lt print type lt 提取元素,下表從0開始,存在越界...

java基礎資料型別

基礎資料型別 byte 位元組 8bit 8 個二進位制位 0 2 8 256 128 127 short 短整型 16bit 02 16 65536 32768 32768 int 整型 32bit 02 32 2147483648 2147483648 long 長整型 64bit 02 64 ...