簡介:我們都知道,計算機中都是使用2進制進行存儲的。學習好二進制,對理解計算機如何處理數據以及Java中的數據類型在計算機中如何存儲,都有實質性的幫助。本課程將從二進制的歷史開始講解位值制計數法、進制轉換、小數的二進制化等二進制相關知識。並由此拓展介紹了Java中的整型、浮點型以及字符型。在這裏還可以看到BigInteger、BigDecimal如何使用、ASCII與unicode關係等
第1章 認識計算機中的數學基礎——二進制
本章帶領大家認識二進制的基本概念,發展歷史,使用場景,對二進制的優缺點進行分析,對全部課程做一個介紹
1-1 二進制的前世今生 (08:26)
第2章 計算機中的進制
本章介紹二進制與其他進制的基礎——位值制計數法。以及Java中各種進制之間的轉換。位運算就是直接對內存中的二進制位進行操作,講解這種基本運算方式,體驗位運算的效率
2-1 位值制計數法 (12:14)
2-2 Java中的進制 (15:55)
public class BinaryTest {
public static void main(String[] args) {
// 二進制
int bin = 0b1100010;
// 八進制
int oct = 0142;
// 十六進制
int hex = 0x62;
// 十進制
int dec = 98;
// 前綴是數字0,不是字母O
// 英文字母 b x 是不區分大小寫的
// 在指定進制中使用規定的數碼
// 底層存儲都是二進制的形式
// Java默認使用十進制,輸出顯示都是十進制的形式
System.out.println("2:" + bin);
System.out.println("8:" + oct);
System.out.println("16:" + hex);
System.out.println("10:" + dec);
}
}
public class BinaryTest {
public static void main(String[] args) {
/*// 二進制
int bin = 0b1100010;
// 八進制
int oct = 0142;
// 十六進制
int hex = 0x62;
// 十進制
int dec = 98;
// 前綴是數字0,不是字母O
// 英文字母 b x 是不區分大小寫的
// 在指定進制中使用規定的數碼
// 底層存儲都是二進制的形式
// Java默認使用十進制,輸出顯示都是十進制的形式
System.out.println("2:" + bin);
System.out.println("8:" + oct);
System.out.println("16:" + hex);
System.out.println("10:" + dec);*/
int num = 98;
/*System.out.println("2:" + Integer.toBinaryString(num));
System.out.println("8:" + Integer.toOctalString(num));
System.out.println("16:" + Integer.toHexString(num));*/
/*System.out.println("2:" + Integer.toString(num, 2));
System.out.println("8:" + Integer.toString(num, 8));
System.out.println("16:" + Integer.toString(num, 16));
//-----------------------
System.out.println("------------------");
System.out.println("5:" + Integer.toString(num, 5));
System.out.println("36:" + Integer.toString(num, 36));
System.out.println("37:" + Integer.toString(num, 37));
System.out.println("100:" + Integer.toString(num, 100));*/
System.out.println(Integer.parseInt("1100010", 2));
System.out.println(Integer.parseInt("62", 16));
System.out.println(Integer.parseInt("2q", 36));
}
}
2-3 位運算 (12:47)
第3章 基本數據類型的存儲
本章介紹比特與字節的概念,對java中的 .class文件與Jvm進行了基本介紹。基本數據類型部分,主要介紹了整形和浮點型:整型的儲存,多字節大小端問題、符號問題,補碼問題。補碼的加減移位運算;小數的二進制化,浮點數的存儲原理 IEEE754。以及Java中解決兩個問題:整型取值範圍問題引入的BigInteger,和精度丟失問題引入的BigDecimal。此外還介紹了ASCII與unicode關係以及boolean的存儲
3-1 Java中的整數類型 (10:36)
public class BigIntegerTest {
public static void main(String[] args) {
BigInteger b1 = new BigInteger("29");
BigInteger b2 = new BigInteger("1010", 2);
BigInteger b3 = BigInteger.valueOf(33l);
System.out.println(b1.toString());
System.out.println(b2.toString());
System.out.println(b3.toString(2));
}
}
public class BigIntegerTest {
public static void main(String[] args) {
BigInteger b1 = new BigInteger("29");
BigInteger b2 = new BigInteger("1010", 2);
BigInteger b3 = BigInteger.valueOf(33l);
/*System.out.println(b1.toString());
System.out.println(b2.toString());
System.out.println(b3.toString(2));*/
BigInteger add = b1.add(b2);
BigInteger sub = b1.subtract(b2);
BigInteger mul = b1.multiply(b2);
BigInteger div = b1.divide(b2);
System.out.println(add);
System.out.println(sub);
System.out.println(mul);
System.out.println(div);
}
}
3-2 小數的二進制化 (08:28)
3-3 IEEE754及BigDecimal (12:36)
public class BigDecimalTest {
public static void main(String[] args) {
/*BigDecimal b1 = new BigDecimal("0.1");
BigDecimal b2 = new BigDecimal(0.1);
System.out.println(b1.toString());
System.out.println(b2.toString());
BigDecimal b3 = new BigDecimal(0.1 + "");
System.out.println(b3.toString());
BigDecimal bigDecimal = BigDecimal.valueOf(0.1);
System.out.println(bigDecimal);*/
BigDecimal b1, b2;
b1 = BigDecimal.valueOf(0.3);
b2 = BigDecimal.valueOf(0.1);
BigDecimal div1 = b1.divide(b2);
System.out.println(div1);
BigDecimal div2 = b2.divide(b1, new MathContext(5, RoundingMode.HALF_UP));
System.out.println(div2);
}
}
3-4 Java中的字符型和布爾類型 (09:24)
ASCII
第4章 回顧與總結
將本課程提到的所有內容進行一個回顧與總結
4-1 回顧與總結 (05:08)
本文由博客一文多發平臺 OpenWrite 發佈!