一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【Java】基礎(chǔ)08:數(shù)據(jù)類型的轉(zhuǎn)換

 劉小愛v 2020-04-26

基本數(shù)據(jù)類型有四類八種,相互之間有著包含與被包含的關(guān)系。

比如9,它既可以是字節(jié)型,也可以是短整型,也可以是整型,長(zhǎng)整型,甚至還可以是一個(gè)字符。

那他們之間是如何轉(zhuǎn)化的呢?

一、自動(dòng)轉(zhuǎn)換

看下面例子:

2和2.0,在我們的認(rèn)知中,可能就覺得它們其實(shí)就是一回事,但是在Java世界里,它們對(duì)應(yīng)不同的數(shù)據(jù)類型。

2這個(gè)常數(shù)默認(rèn)是int類型的,當(dāng)它賦值給一個(gè)double類型的時(shí)候,輸出時(shí)就會(huì)自動(dòng)轉(zhuǎn)換

代碼執(zhí)行過程中取值范圍小的類型自動(dòng)轉(zhuǎn)換為取值范圍大的類型

其中大小范圍如下:

byte、shortchar < int < long < float < double

再看一個(gè)例子:

1,它既可以是byte、也可以是short、char、int、long,但是在運(yùn)算時(shí)會(huì)自動(dòng)轉(zhuǎn)換成int。

所以:b1+b2=2(這個(gè)2是int類型)

無法將int類型的數(shù)值賦值給byte類型。

同理我們可以依次證明byte、short、char 運(yùn)算時(shí)直接提升為int

二、強(qiáng)制轉(zhuǎn)換

前面我們將一個(gè)int類型的數(shù)據(jù)賦值給一個(gè)double類型,它會(huì)完成自動(dòng)轉(zhuǎn)換。

那反過來會(huì)怎么樣?

1.2默認(rèn)是double數(shù)據(jù)類型,當(dāng)把一個(gè)double數(shù)據(jù)類型的數(shù)據(jù)賦值給一個(gè)int類型時(shí),編譯會(huì)報(bào)錯(cuò)。

這個(gè)時(shí)候我們就需要強(qiáng)制轉(zhuǎn)換了

由此我們可以理解強(qiáng)制轉(zhuǎn)換的概念:

  • 自動(dòng)轉(zhuǎn)換是取值范圍小的類型自動(dòng)轉(zhuǎn)換為取值范圍大的類型

  • 強(qiáng)制轉(zhuǎn)換是取值范圍大的類型強(qiáng)制轉(zhuǎn)換成取值范圍小的類型

轉(zhuǎn)換格式:

int i=(int)1.2; 數(shù)據(jù)類型 變量名 = (數(shù)據(jù)類型)被轉(zhuǎn)數(shù)據(jù)值;

也就是一個(gè)括號(hào)加上需要強(qiáng)制轉(zhuǎn)換的數(shù)據(jù)類型,強(qiáng)制轉(zhuǎn)換后會(huì)發(fā)現(xiàn),i從1.2變成1了。

綜上我們可以發(fā)現(xiàn):自動(dòng)轉(zhuǎn)換時(shí)是Java自動(dòng)執(zhí)行的不需要我們參與,而強(qiáng)制轉(zhuǎn)換需要我們自己手動(dòng)執(zhí)行。

轉(zhuǎn)換原理:

前面我們學(xué)習(xí)了字節(jié),其取值范圍為[-128,127]

忘記了,可以做個(gè)回顧:基本數(shù)據(jù)類型

定義一個(gè)byte類型的變量,賦值一個(gè)在它范圍之外的一個(gè)數(shù),比如257

結(jié)果為何為1?

257超過了byte類型的取值范圍,默認(rèn)為int類型,int類型4個(gè)字節(jié),也就是32位。

強(qiáng)制轉(zhuǎn)換為byte類型,會(huì)丟失前三個(gè)字節(jié)的數(shù)據(jù)。

故:強(qiáng)轉(zhuǎn)有風(fēng)險(xiǎn),操作需謹(jǐn)慎

  • 精度損失:浮點(diǎn)轉(zhuǎn)成整數(shù),直接取消小數(shù)點(diǎn),可能造成數(shù)據(jù)損失精度。

  • 數(shù)據(jù)溢出int 強(qiáng)制轉(zhuǎn)成byte 砍掉3個(gè)字節(jié),可能造成數(shù)據(jù)丟失。

三、ASCII編碼表

在學(xué)習(xí)二進(jìn)制中我們便知道了計(jì)算機(jī)底層都是二進(jìn)制數(shù)據(jù)(0和1)

那如何讓計(jì)算機(jī)識(shí)別人類的文字呢?

于是就產(chǎn)生出了編碼表的概念。

編碼表 就是將人類的字符和一個(gè)十進(jìn)制數(shù)進(jìn)行對(duì)應(yīng)起來組成一張表格。

表中每個(gè)字符都對(duì)應(yīng)了一個(gè)十進(jìn)制數(shù)值,如下:

記住最常見的幾個(gè):

  • 字符0對(duì)應(yīng)數(shù)字48

  • 字符9對(duì)應(yīng)數(shù)字57

  • 大寫字母A對(duì)應(yīng)65

  • 大寫字母Z對(duì)應(yīng)90

  • 小寫字母a對(duì)應(yīng)97

  • 小寫字母z對(duì)應(yīng)122

PS:0~9是字符時(shí),也有對(duì)應(yīng)的十進(jìn)制數(shù)字

每個(gè)字符都對(duì)應(yīng)一個(gè)數(shù)值。如果要進(jìn)行數(shù)值運(yùn)算,字符可以 代表其對(duì)應(yīng)的數(shù)值,比如char轉(zhuǎn)int:

int i ='0';//此時(shí)'0'是一個(gè)字符而不是一個(gè)數(shù)字 System.out.println(i);//結(jié)果是48 System.out.println('0'+1)//結(jié)果是49

總結(jié):

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    91人妻久久精品一区二区三区| 国产黑人一区二区三区| 国产欧美精品对白性色| 黑人巨大精品欧美一区二区区| 中文字日产幕码三区国产| 欧美日韩国产亚洲三级理论片 | 成人午夜爽爽爽免费视频| 欧美成人久久久免费播放| 大屁股肥臀熟女一区二区视频| 欧美日韩精品人妻二区三区| 年轻女房东2中文字幕| 东京热电东京热一区二区三区| 东京热一二三区在线免| 欧美精品一区久久精品| 日韩人妻av中文字幕| 91爽人人爽人人插人人爽| 高中女厕偷拍一区二区三区| 亚洲精品成人午夜久久| 国产av一二三区在线观看| 最近最新中文字幕免费| 99久久免费看国产精品| 99久免费精品视频在线观| 国产精品不卡一区二区三区四区 | 久久99精品国产麻豆婷婷洗澡| 麻豆果冻传媒一二三区| 丰满人妻一二三区av| 亚洲伊人久久精品国产| 国产极品粉嫩尤物一区二区| 欧美日韩一级黄片免费观看| 91久久精品国产成人| 亚洲精品一二三区不卡| 都市激情小说在线一区二区三区| 中文字幕乱子论一区二区三区| 色婷婷在线视频免费播放| 老司机这里只有精品视频| 亚洲夫妻性生活免费视频| 国产欧美精品对白性色| 久热香蕉精品视频在线播放| 日韩女优精品一区二区三区| 中文字幕日韩欧美一区| 国产亚洲精品久久99|