慕課網《二進制與Java中的基本數據類型》視頻學習筆記

image.png

視頻地址:https://www.imooc.com/video/21195

簡介:我們都知道,計算機中都是使用2進制進行存儲的。學習好二進制,對理解計算機如何處理數據以及Java中的數據類型在計算機中如何存儲,都有實質性的幫助。本課程將從二進制的歷史開始講解位值制計數法、進制轉換、小數的二進制化等二進制相關知識。並由此拓展介紹了Java中的整型、浮點型以及字符型。在這裏還可以看到BigInteger、BigDecimal如何使用、ASCII與unicode關係等

第1章 認識計算機中的數學基礎——二進制

本章帶領大家認識二進制的基本概念,發展歷史,使用場景,對二進制的優缺點進行分析,對全部課程做一個介紹



1-1 二進制的前世今生 (08:26)

image.png


image.png


image.png


image.png


image.png


image.png


image.png








第2章 計算機中的進制

本章介紹二進制與其他進制的基礎——位值制計數法。以及Java中各種進制之間的轉換。位運算就是直接對內存中的二進制位進行操作,講解這種基本運算方式,體驗位運算的效率

2-1 位值制計數法 (12:14)

image.png




image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png

2-2 Java中的進制 (15:55)


image.png


image.png


image.png


image.png


image.png


image.png


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);
    }

}


image.png




image.png




image.png
image.png

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)


image.png


image.png


image.png


image.png


image.png


image.png
image.png


image.png


image.png


image.png


image.png


image.png


image.png


image.png






第3章 基本數據類型的存儲

本章介紹比特與字節的概念,對java中的 .class文件與Jvm進行了基本介紹。基本數據類型部分,主要介紹了整形和浮點型:整型的儲存,多字節大小端問題、符號問題,補碼問題。補碼的加減移位運算;小數的二進制化,浮點數的存儲原理 IEEE754。以及Java中解決兩個問題:整型取值範圍問題引入的BigInteger,和精度丟失問題引入的BigDecimal。此外還介紹了ASCII與unicode關係以及boolean的存儲

image.png

3-1 Java中的整數類型 (10:36)


image.png


image.png






image.png
image.png


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));
    }

}

image.png




image.png

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)


image.png


image.png


image.png


image.png


image.png


image.png




3-3 IEEE754及BigDecimal (12:36)


image.png


image.png






image.png


image.png


image.png


image.png


image.png


image.png

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)


image.png
image.png






image.png


ASCII


image.png


image.png


image.png


image.png


image.png


第4章 回顧與總結

將本課程提到的所有內容進行一個回顧與總結



4-1 回顧與總結 (05:08)

image.png




image.png






本文由博客一文多發平臺 OpenWrite 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章