日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲

發(fā)布時(shí)間:2023/12/19 java 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

導(dǎo)讀

本文適合Java入門,不太適合Java中高級(jí)軟件工程師。

本文以《Java程序設(shè)計(jì)基礎(chǔ)篇》第10版為藍(lán)本,采用不斷提出問(wèn)題,然后解答問(wèn)題的方式來(lái)講述。

本篇文章只是這個(gè)系列中的一篇,如果你喜歡這種講解方式,或者覺(jué)得從中能學(xué)到知識(shí),可以關(guān)注我,以便查閱本系列其他文章。

本文是第二章的第2講,如果想看第1講,可以查看:

愉快地學(xué)Java語(yǔ)言:第二章基本程序設(shè)計(jì) 第1講

8數(shù)值數(shù)據(jù)類型和操作

Java中有多少個(gè)數(shù)值類型,它們都是什么?

一共有六種數(shù)值類型,分類歸納為:

  • 整數(shù):byte,short,int,long
  • 浮點(diǎn)數(shù):float(單精度),doubl(雙精度)

大家不禁會(huì)想標(biāo)準(zhǔn)IEEE754是什么?

IEEE 754 是美國(guó)電氣電子工程師協(xié)會(huì)通過(guò)的一個(gè)標(biāo)準(zhǔn),用于在計(jì)算機(jī)上表示浮點(diǎn)數(shù)。該標(biāo)準(zhǔn)已被廣泛采用。Java采用32位IEEE 754表示float型,64位IEEE 754表示double型。

都支持哪些種類的操作呢?

支持加(+),減(-),乘(*),除(/),求余(或稱取模,%)

要注意的運(yùn)算要點(diǎn)有哪些呢?

  • 當(dāng)除數(shù)都是整數(shù)時(shí),除法結(jié)果是整數(shù),小數(shù)部分舍棄。
  • 對(duì)于%,只有當(dāng)被除數(shù)是負(fù)數(shù)時(shí),余數(shù)才是負(fù)數(shù)。
  • 操作符%通常用在正整數(shù)上,它也可用于負(fù)整數(shù)和浮點(diǎn)值。只有當(dāng)被除數(shù)是負(fù)數(shù)時(shí),余數(shù)才是負(fù)的。
  • 兩個(gè)浮點(diǎn)數(shù)值的相等測(cè)試并不可靠。應(yīng)該測(cè)試兩個(gè)浮點(diǎn)數(shù)的差小于某個(gè)閾值,來(lái)比較他們是否接近。

例:

double x =1.0-0.1-0.1

x==0.8//可能為false

此外,使用方法Math.pow(a,b)來(lái)計(jì)算a的b次冪。

9數(shù)值型直接量

前面我們了解了變量,那么下面的代碼中出現(xiàn)的數(shù)字是什么呢?

int i =0;

它是直接量。直接量是一個(gè)程序中直接出現(xiàn)的常量值。

由于0數(shù)字,所以數(shù)值型直接量。

數(shù)值型直接量的要點(diǎn)包括:

  • 數(shù)值型直接量包括:整型直接量,浮點(diǎn)型直接量。
  • Long型的整型直接量要在數(shù)字后加字母L或l。
  • 二進(jìn)制整型直接量以0b或0B開(kāi)頭,例:0B1111
  • 八進(jìn)制整型直接量以0開(kāi)頭,例:07777
  • 十六進(jìn)制整型直接量以0X開(kāi)頭,例:0XFFFF
  • 浮點(diǎn)型直接量要在數(shù)字后加字母F或f(folat型直接量),D或d(double型直接量)

整型直接量默認(rèn)是int型的,指的是什么呢?

即,如果一個(gè)數(shù)字直接出現(xiàn)在代碼中,其后沒(méi)有字母,也不任何標(biāo)志開(kāi)頭(0b,0B,0,0X開(kāi)頭),那么它表達(dá)整型值。

與此相似地,浮點(diǎn)型直接量默認(rèn)情況下是double型的。

上面那個(gè)表格中,出現(xiàn)了3.4028235E+38這種表示法,那么它是什么呢?

它是科學(xué)記數(shù)法,用 aX10b的形式表示浮點(diǎn)型直接量。

2_3這種寫(xiě)法你見(jiàn)過(guò)嗎?

它也表示數(shù)值型直接量。為了提高可讀性,Java允許在兩個(gè)數(shù)字之間使用下劃線來(lái)表示數(shù)值型直接量。

10表達(dá)式求值以及操作符優(yōu)先級(jí)

如何對(duì)表達(dá)式進(jìn)行求值運(yùn)算呢?

算數(shù)我們都會(huì),其實(shí)算數(shù)運(yùn)算規(guī)則也適用于表達(dá)式求值。

我們都知道,先算乘除,再算加減,那么有多個(gè)操作符的時(shí)候怎么算呢?

這涉及到運(yùn)算符優(yōu)先級(jí)的問(wèn)題,先計(jì)算優(yōu)先級(jí)高的,乘除優(yōu)先級(jí)比加減優(yōu)先級(jí)高。乘與除優(yōu)先級(jí)相同,加與減優(yōu)先級(jí)相同。

關(guān)于操作符的優(yōu)先級(jí)可以列一個(gè)總表,但由于好多操作符目前還沒(méi)有接觸,所以暫且不列。

11增強(qiáng)賦值操作符

上面列舉了所有的增強(qiáng)賦值操作符,那么為什么要使用它呢?

看下面這個(gè)例子:

int i = 10;

i = i - 1;

這個(gè)例子很簡(jiǎn)單,首先聲明int型變量i,并初始化賦值10。然后,將i減1,再將結(jié)果賦給i。那么此時(shí)i的值是9.

有沒(méi)有更簡(jiǎn)潔的寫(xiě)法呢?

當(dāng)然有,i - = 1;

不過(guò),也沒(méi)簡(jiǎn)潔多少,只是少寫(xiě)了個(gè)字母i而已。

12自增自減操作符

看到命名,你想到了什么嗎?

對(duì)了,操作符放到變量前面就是前置操作符,放到后面就是后置操作符。

有沒(méi)有發(fā)現(xiàn)什么規(guī)律?

前置操作符使用變化后的值,后置操作符使用變化前的值。

例如,計(jì)算++i相當(dāng)于計(jì)算i=i+1;這樣i當(dāng)前的值是原值加1后的結(jié)果。

13數(shù)值類型轉(zhuǎn)換

什么是類型轉(zhuǎn)換?

將一種數(shù)據(jù)類型的值轉(zhuǎn)換為另一種數(shù)據(jù)類型的操作。

為什么要轉(zhuǎn)換類型?

實(shí)際應(yīng)用的需要,再者就是為了合理的存儲(chǔ)數(shù)據(jù)。

先來(lái)看幾個(gè)概念:

擴(kuò)寬類型:將一個(gè)小范圍類型的變量轉(zhuǎn)換為大范圍類型的變量。

縮窄類型:將一個(gè)大范圍類型的變量轉(zhuǎn)換為小范圍類型的變量。Java自動(dòng)擴(kuò)寬數(shù)據(jù)類型,縮窄類型必須執(zhí)行顯示轉(zhuǎn)換,如果不顯示轉(zhuǎn)換會(huì)出現(xiàn)編譯錯(cuò)誤。

能給個(gè)形象的比喻嗎?

形象地說(shuō),擴(kuò)寬類型就好比有11個(gè)人想進(jìn)能容納10個(gè)人的屋子,縮窄類型就好比能容納10個(gè)人的屋子只進(jìn)了9個(gè)人,前者無(wú)論如何也容納不下第11個(gè)人,后者是對(duì)資源的浪費(fèi)。

例如,顯示轉(zhuǎn)換

float f = 5.55f;

int i = (int)f;//此時(shí)i的值是5。

如果寫(xiě)成:float f = 5.55;呢?

那么一定會(huì)報(bào)編譯錯(cuò)誤,因?yàn)閯e忘了,浮點(diǎn)型直接量默認(rèn)情況下是double型的,double精度高于float,double轉(zhuǎn)換為float屬于縮窄類型。

看到左側(cè)的紅叉了碼,驗(yàn)證了我們的判斷。把鼠標(biāo)方在其上面,看看具體的信息:Type mismatch: cannot convert from double to float

那么在類型轉(zhuǎn)換中還應(yīng)該注意點(diǎn)什么呢?

  • 類型轉(zhuǎn)換中,被轉(zhuǎn)換變量不會(huì)被改變。
  • 形如x1 op= x2的增強(qiáng)賦值表達(dá)式,執(zhí)行的實(shí)際是x1=(T)(x1 op x2),T是x1的類型。
  • 浮點(diǎn)型轉(zhuǎn)換為int,小數(shù)部分會(huì)被截掉。

14常見(jiàn)錯(cuò)誤

如果賦給變量的值,超過(guò)它的存儲(chǔ)范圍,會(huì)怎么樣呢?

這種情形被稱為溢出。超過(guò)變量所能承載的最大值、最小值算溢出。然而Java不會(huì)給出警告或者報(bào)錯(cuò)。產(chǎn)生的結(jié)果會(huì)獲讓人覺(jué)得奇怪。

例如,int型變量能存儲(chǔ)的最大值是2147483647,最小值是-2147483648

若有下面的賦值表達(dá)式:

int i = 2147483647 + 1;

那么此時(shí)i的值是-2147483648

若有賦值表達(dá)式:

Int i = -2147483648 - 1;

那么此時(shí)i的值是2147483647。

每天30分鐘,堅(jiān)持一個(gè)月就能為Java開(kāi)發(fā)打下堅(jiān)實(shí)的基礎(chǔ)!努力學(xué)習(xí)吧!

總結(jié)

以上是生活随笔為你收集整理的语言求余和乘除优先级_愉快地学Java语言:第二章基本程序设计 第2讲的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。