double类型怎么取余_数据类型和运算符
數據類型和運算符
1.進制
1.1文件存儲單位
? 任何數據在計算機中都是以二進制的形式存在的,二進制早期由電信號開關演變而來 。
? 一個電信號或者一個二進制位統稱為Bit位,8個Bit位為一組組成一個字節Byte 。
? 一個bit位表示的數的范圍:0和1
? 一個byte表示的數的范圍:256個數
? 無符號數:0-255(28-1) 256個數
? 有符號數:-128(-27)-- 127(27-1) 還是256個數
1.2 常見的進制介紹
- 2進制(計算機能夠識別的),逢二進一
? 用0和1來表示
- 8進制,逢八進一
? 用0-7來表示
? 注意:8進制以0b開頭
- 10進制(人類最常見的進制),逢十進一
? 用0-9來表示
- 16進制,逢十六進一
? 用0-9和ABCDEF來表示
? 注意:16進制以0x開頭
2.常量和變量
2.1關鍵字與保留字
? java關鍵字是電腦語言里事先定義的,有特別意義的標識符,有時又叫保留字,還有特別意義的變量。java的關鍵字對java的編譯器有特殊的意義,他們用來表示一種數據類型,或者表示程序的結構。
2.2 標識符
標識符是用于給java程序中的變量、類、方法、包等命名的符號。
標識符需要遵守一定的規則:
1)標識符必須以字母(A-Z和a-z)、數字(0-9)、下劃線“_”、美元符號“$”組成。
2)標識符不能以數字開頭,其它部分可以是字母、下劃線、美元符和數字的任意組合。
3)Java 標識符大小寫敏感,且長度無限制。
4)標識符不可以是Java的關鍵字。
標識符的使用規范: 表示類名的標識符應首字母大寫,并且采用駝峰式命名法則。
例如:Person, GoodStudent
表示方法和變量的標識符應首字母小寫,并且采用駝峰式命名法則。
例如:int userName; public void eatFood(){}
注意:Java不采用通常語言使用的ASCII字符集,而是采用unicode這樣的標準的國際字符集。因此,這里的字母的含義不僅僅是英文,還包括漢字等等。但是不建議大家使用漢字來定義標識符!
2.3 變量(Variable)與常量(Constant)
變量聲明語法:數據類型 變量名;
變量的特點:在于“變”字,聲明變量所開辟的內存空間可以多次賦值。
常見問題總結:
- 在方法中聲明的變量,必須是賦值之后才能使用。
- 先聲明后賦值,沒用聲明的變量名什么都不是。
- 變量名必須是合法的標識符,采用首字母小寫的駝峰式命名。
- 賦值的數據類型必須和聲明變量類型一致。
- 在同一個方法中,不能聲明多個同名的變量。
常量語法:final 數據類型 常量名 = 數據值
Final float PI = 3.1415926f;
【注意事項】
- 常量只能被賦值一次,賦值完畢后就不能再更改值。
- 常量名一般由大寫字母組成,多個單詞可以用下劃線分割,例如:final int MAX_VALUE = 100;
3 .基本數據類型
- java是一種強類型語言,每個變量都必須聲明其類型。
- java的數據類型分為兩大類:基本類型(primitive type)和引用類型(reference type)。
3.1 整數型
【注意事項】
- 注意數據類型的表數范圍,避免出現超出表數范圍精度丟失的情況。
- 整型常量默認為int類型,聲明long型常量可以加“l”或“L”,建議使用“L”。
3.2浮點型
小數類型在Java中稱為浮點類型 。
浮點類型分為float類型和double類型
【注意事項】
- 浮點型常量默認為double類型。
- 浮點型常量賦值給float類型,需要在常量后面添加“f”或 “F”。
- 避免直接比較兩個浮點數的大小,這樣比較可能會出現問題。
3.3布爾型
- boolean類型有兩個值:true和false。true代表真,false代表假。
- boolean類型用來判斷邏輯條件,常用于程序流程控制。
? boolean類型占用幾個字節:沒有具體的規定
? 1個bit
? 理由是boolean類型的值只有true和false兩種邏輯值,在編譯后會使用1和0來表示,這兩個數在內存中只需要1位(bit)即可存儲,位是計算機最小的存儲單位。
? 1個字節
? 理由是雖然編譯后1和0只需占用1位空間 ,但計算機處理數據的最小單位是1個字節,1個字節等于8位,實際存儲的空間是:用1個字節的最低位存儲,其他7位用0填補,如果值是true的話則存儲的二進制為:0000 0001,如果是false的話則存儲的二進制為:0000 0000。
3.4字符型
- 字符型在內存中占有2個字節,在Java中使用單引號包裹起來的一個字符稱之為字符常量。例如‘A’是一個字符,它與“A”是不同的,“A”表示含有一個字符的字符串。
- char類型和int類型的聯系和區別
聯系:char類型常量在內存中存儲的就是Unicode編碼值,例如:'A'— 65, '1'— 49。在一定范圍內,char類型和int類型是可以通用的
區別:
? 1. 分配的內存空間不同,int類型占4個字節,char類型占用2個字節。
? 2.數值表示的范圍不同,int類型標識的范圍比char類型更大,并且int類型還可以表示負數
4. Scanner鍵盤輸入
? java.util.Scanner是java5的新特征,主要功能是獲取控制臺輸入的數據
4.1導入Scanner包
import java.util.Scanner;
4.2初始化Scanner對象
Scanner input = new Scanner(System.in);
4.3獲取輸入的數據
String str = input.nextLine();
例子:通過鍵盤錄入獲取圓的半徑,然后計算出該圓的周長和面積
import java.util.Scanner; public class ScannerTest {public static void main(String[] args) {// 通過Scanner獲取半徑Scanner input = new Scanner(System.in);System.out.print("請輸入半徑:");double r = input.nextDouble();// 計算出該圓的周長和面積。final double PI = 3.1415926;// 周長:2*PI*rdouble circumference = 2*PI*r;// 面積:PI*r*rdouble area = PI*r*r;System.out.println("周長:" + circumference + " 面積:" + area);} }5 基本數據類型轉換
? 在賦值運算或算術運算時,要求數據類型相同,否則就要進行類型轉換。
轉換的方式:
- 自動類型轉換(隱式)
- 強制類型轉換(顯示)
基本數據類型的轉換主要包含:byte、short、int、long、float、double和char,不包含boolean類型。
5.1自動類型轉換
? 自動類型轉換(隱式類型轉換)指的是容量小的數據類型可以自動轉換為容量大的數據類型。(由低字節向高字節的轉換 byte->short-> char –>int->long->float->double )
? 把整數常量(int類型)賦值給byte、short和char類型變量,屬于自動類型轉換的特例,只要不超出其表數范圍即可。
? 算數運算中的類型自動轉換原則:
- 如果兩個操作數其中有一個是double類型,另一個操作就會轉換為double類型。
否則,如果其中一個操作數是float類型,另一個將會轉換為float類型。 否則,如果其中一個操作數是long類型,另一個會轉換為long類型。 * 否則,兩個操作數都轉換為int類型。
5.2強制類型轉換
? 強制類型轉換(顯示類型轉換),主要用于顯式的轉換一個數值的類型。在有可能丟失信息的情況下進行的轉換是通過造型來完成的,但可能造成精度降低或溢出。
語法格式:目標類型 變量 =(目標類型)源類型變量或常量
例:byte b = (byte)a
6.運算符(operator)
6.1算數運算符
6.1.1二元運算符
? +:
- 對于數值型數據,可以做加法運算
- 對于字符串類型數據,做的是連接符操作,做的就是拼接操作! 還可以表示正數,+5
**-:** - 對于數值型數據,可以做減法運算 還可以表示負數,-5
*****: - 對于數值型數據,可以做乘法運算
**/:** - 對于數值型數據,可以做除法運算
**%:** - 取余或取模,也就是獲取不能被整除的數
例:5%7,結果為:5
習題:獲取整數987的百位數、十位數和個位數
import java.util.Scanner; public class OperatorDemo01 {public static void main(String[] args) {// 2、獲取整數987的百位數、十位數和個位數。int num = 987;// 獲取百位數,9int bit1 = num / 100;// 獲取十位數,8// 思路一:先獲取98,然后再獲取8// int bit2 = num / 10 % 10;// 思路二:先獲取87,然后再獲取8int bit2 = num % 100 / 10;// 獲取個位數,7int bit3 = num % 10;System.out.println("百位數:" + bit1 + " 十位數:" + bit2 + " 個位數:" + bit3);6.1.2一元運算符
一元運算符,只需要一個操作數參與運算即可! ++:
- 自增運算符
num++和++num,都等效于:num = num + 1; 當和別的操作數一起運算的時候: num++,先運算,后自增! ++num,先自增,后運算!--: - 自減運算符
num--和--num,都等效于:num = num - 1; 當和別的操作數一起運算的時候: num--,先運算,后自減! --num,先自減,后運算!
6.2賦值運算符
=:
- 把等號右邊的數據賦值給等號左邊的變量或final修飾的常量!
需求:交換兩個變量的值(用兩種方式實現)。 - 1.定義一個臨時變量
?
- 2.不需要零時變量參與
6.3擴展賦值運算符
擴展賦值運算符:是算術運算符和賦值運算符結合
6.4 關系運算符
關系運算符用來進行比較運算,關系運算符的運算結果是boolean類型。
<、>=、<=、==、!=
6.5邏輯運算符
&, |, ^, &&, ||, ! 特點:參與邏輯運算的數據類型都必須是boolean類型 邏輯運算符執行完畢返回的結果也是boolean類型
- &與
? 兩邊都為true時,那么返回的結果就為true 只要有一邊為false,那么返回的結果就為false 輔助記憶:小明與小紅來一趟辦公室!
- |或
? 兩邊都為false時,那么返回的結果就為false 只要有一邊為true,那么返回的結果就為true 輔助記憶:小明或小紅來一趟辦公室!
- ^異或
? 當兩邊不相同時,返回的結果才為true 當兩邊相同時,返回的結果才為false
- &&短路與
? &和&&相同點: 返回的boolean結果都是一模一樣!
&和&&不同點:執行過程不一樣
&&:當左邊表達式的結果為false時,那么右邊表達式不需要執行,直接返回左側表達式的結果即可!
當左邊表達式的結果為true時,那么右邊表達式需要執行,直接返回右側表達式的結果即可!
&:無論左側表達式結果為什么(true或false),右邊表達式都需要執行!
現實開發中,使用&&最常見,因為&&的執行效率高于&!
- ||短路或
? |和||相同點:執行過程不一樣,返回的boolean結果都是一模一樣!
|和||不同點:
||:當左邊表達式的結果為true時,那么右邊表達式不需要執行,直接返回左側表達式的結果即可!
當左邊表達式的結果為false時,那么右邊表達式需要執行,直接返回右側表達式的結果即可!
|:無論左側表達式結果為什么(true或false),右邊表達式都需要執行!
現實開發中,使用||最常見,因為||的執行效率高于|
- !取反,并時屬于一元運算符
? 當true取反,結果為false 當false取反,結果就是true
6.6三元運算符
三元運算符又稱為三目運算。
語法格式:條件表達式? 表達式1 : 表達式2
如果條件表達式為true,則取表達式1的值,否則就取表達式2的值。
總結
以上是生活随笔為你收集整理的double类型怎么取余_数据类型和运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 链表list(链式存储结构实现)_数据结
- 下一篇: 使用tab键分割的文章能快速转换成表格。