學習記錄之二進制
正則表達式:描述字符串內容格式的,通常用它來匹配字符串內容是否符合格式要求
String支持正則表達式的三個方法:
matches():檢查是否匹配
split():拆分
replaceAll():替換
Object:所有類的鼻祖,所有類都直接或間接繼承了Object
? ? ? ? ? ? ? 其中有兩個方法經(jīng)常被重寫: toString()和equals()
包裝類:8種,為了解決基本類型不能直接參與面向對象開發(fā)的問題、自動拆裝箱特性,允許基本類型與包裝類之間直接賦值,底層將會自動補充代碼
什么是16進制:逢16進1的計數(shù)規(guī)則
補碼:-------------------了解
位運算:
將一個2進制數(shù)每個1位置的權相加即可-------------正數(shù)
規(guī)則:逢2進1
數(shù)字:0 ?1
基數(shù):2
權: 128 ? 64 ? 32 ? 16 ? 8 ? 4 ? 2 ?1
2進制:
如何將2進制轉換為10進制:
規(guī)則:逢16進1
數(shù)字:0 1 2 3 4 5 6 7 8 9 a b c d e f
基數(shù):16
權:4096 ? 256 ? 16 ? 1
16進制:
用途:因為2進制書寫太麻煩,所以常常用16進制來縮寫2進制數(shù)字
如何縮寫:將2進制從最低位開始,每4位2進制縮寫為1位16進制
記住32位二進制數(shù)-1的編碼是32個1
負值:用-1減去0位置對應的權值--------------負數(shù)
0111為4位補碼的最大值,規(guī)律是1個0和3個1,可以推導出:
---32位補碼的最大值是:1個0和31個1-----(01111111...)
1000為4位補碼的最小值,規(guī)律是1個1和3個0,可以推導出:
---32位補碼的最小值是:1個1和31個0-----(10000000...)
1111為4位補碼的-1,規(guī)律是4個1,可以推導出:
---32位補碼的-1是:32個1---------------------(111111111...)
計算的時候如果超出4位數(shù)則高位自動溢出舍棄,保持4位數(shù)不變
將4位2進制數(shù)分一半作為負數(shù)使用
最高位稱為符號位,高位為1是負數(shù),高位為0是正數(shù)
計算機中處理有符號數(shù)(正負數(shù))的一種編碼方式,java中的補碼最小類型是int,32位數(shù)
以4位2進制為例講解補碼的編碼規(guī)則:
規(guī)律數(shù):------最大值、最小值、-1
深入理解負值:
互補對稱現(xiàn)象:-n = ~n+1 --------取反+1 ? ?了解即可
左移位運算<<:
運算規(guī)則:將2進制數(shù)整體向左移動,高位自動溢出舍棄,低位補0
運算規(guī)則:將2進制數(shù)整體向右移動,低位自動溢出舍棄,高位補0
運算規(guī)則:邏輯加法,有1則1
運算規(guī)則:邏輯乘法,有0則0
~: ?取反(0變1,1變)
&:與運算
|:或運算
右移位運算>>>:
左移位運算<<:
ASCII:美國標準編碼(0到127----字母、數(shù)字、符號)
GBK:中國國標編碼(包含ASCII、中文) ? ? ?日本也有自己的編碼格式
Unicode:世界通用的(包含ASCII、中文、日文、古埃及文......)
UTF:讀寫流都按UTF格式讀寫,對中文而言它有3個字節(jié),
? ? ? ? ? 其中有一個字節(jié)表示長度信息(按兩個英文解,還是按一個中文解)
ab:傳輸?shù)氖菍亩M制--------01011011 ?01010101
接收到二進制后還需解碼---------計算機就傻了,不知道將其當作兩個英文解還是一個中文解