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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

導讀

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

本文以《Java程序設計基礎篇》第10版為藍本,采用不斷提出問題,然后解答問題的方式來講述。

本篇文章只是這個系列中的一篇,如果你喜歡這種講解方式,或者覺得從中能學到知識,可以關注我,以便查閱本系列其他文章。

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

愉快地學Java語言:第二章基本程序設計 第1講

8數值數據類型和操作

Java中有多少個數值類型,它們都是什么?

一共有六種數值類型,分類歸納為:

  • 整數:byte,short,int,long
  • 浮點數:float(單精度),doubl(雙精度)

大家不禁會想標準IEEE754是什么?

IEEE 754 是美國電氣電子工程師協會通過的一個標準,用于在計算機上表示浮點數。該標準已被廣泛采用。Java采用32位IEEE 754表示float型,64位IEEE 754表示double型。

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

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

要注意的運算要點有哪些呢?

  • 當除數都是整數時,除法結果是整數,小數部分舍棄。
  • 對于%,只有當被除數是負數時,余數才是負數。
  • 操作符%通常用在正整數上,它也可用于負整數和浮點值。只有當被除數是負數時,余數才是負的。
  • 兩個浮點數值的相等測試并不可靠。應該測試兩個浮點數的差小于某個閾值,來比較他們是否接近。

例:

double x =1.0-0.1-0.1

x==0.8//可能為false

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

9數值型直接量

前面我們了解了變量,那么下面的代碼中出現的數字是什么呢?

int i =0;

它是直接量。直接量是一個程序中直接出現的常量值。

由于0數字,所以數值型直接量。

數值型直接量的要點包括:

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

整型直接量默認是int型的,指的是什么呢?

即,如果一個數字直接出現在代碼中,其后沒有字母,也不任何標志開頭(0b,0B,0,0X開頭),那么它表達整型值。

與此相似地,浮點型直接量默認情況下是double型的。

上面那個表格中,出現了3.4028235E+38這種表示法,那么它是什么呢?

它是科學記數法,用 aX10b的形式表示浮點型直接量。

2_3這種寫法你見過嗎?

它也表示數值型直接量。為了提高可讀性,Java允許在兩個數字之間使用下劃線來表示數值型直接量。

10表達式求值以及操作符優先級

如何對表達式進行求值運算呢?

算數我們都會,其實算數運算規則也適用于表達式求值。

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

這涉及到運算符優先級的問題,先計算優先級高的,乘除優先級比加減優先級高。乘與除優先級相同,加與減優先級相同。

關于操作符的優先級可以列一個總表,但由于好多操作符目前還沒有接觸,所以暫且不列。

11增強賦值操作符

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

看下面這個例子:

int i = 10;

i = i - 1;

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

有沒有更簡潔的寫法呢?

當然有,i - = 1;

不過,也沒簡潔多少,只是少寫了個字母i而已。

12自增自減操作符

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

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

有沒有發現什么規律?

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

例如,計算++i相當于計算i=i+1;這樣i當前的值是原值加1后的結果。

13數值類型轉換

什么是類型轉換?

將一種數據類型的值轉換為另一種數據類型的操作。

為什么要轉換類型?

實際應用的需要,再者就是為了合理的存儲數據。

先來看幾個概念:

擴寬類型:將一個小范圍類型的變量轉換為大范圍類型的變量。

縮窄類型:將一個大范圍類型的變量轉換為小范圍類型的變量。Java自動擴寬數據類型,縮窄類型必須執行顯示轉換,如果不顯示轉換會出現編譯錯誤。

能給個形象的比喻嗎?

形象地說,擴寬類型就好比有11個人想進能容納10個人的屋子,縮窄類型就好比能容納10個人的屋子只進了9個人,前者無論如何也容納不下第11個人,后者是對資源的浪費。

例如,顯示轉換

float f = 5.55f;

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

如果寫成:float f = 5.55;呢?

那么一定會報編譯錯誤,因為別忘了,浮點型直接量默認情況下是double型的,double精度高于float,double轉換為float屬于縮窄類型。

看到左側的紅叉了碼,驗證了我們的判斷。把鼠標方在其上面,看看具體的信息:Type mismatch: cannot convert from double to float

那么在類型轉換中還應該注意點什么呢?

  • 類型轉換中,被轉換變量不會被改變。
  • 形如x1 op= x2的增強賦值表達式,執行的實際是x1=(T)(x1 op x2),T是x1的類型。
  • 浮點型轉換為int,小數部分會被截掉。

14常見錯誤

如果賦給變量的值,超過它的存儲范圍,會怎么樣呢?

這種情形被稱為溢出。超過變量所能承載的最大值、最小值算溢出。然而Java不會給出警告或者報錯。產生的結果會獲讓人覺得奇怪。

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

若有下面的賦值表達式:

int i = 2147483647 + 1;

那么此時i的值是-2147483648

若有賦值表達式:

Int i = -2147483648 - 1;

那么此時i的值是2147483647。

每天30分鐘,堅持一個月就能為Java開發打下堅實的基礎!努力學習吧!

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。