学习记录之二进制
正则表达式:描述字符串内容格式的,通常用它来匹配字符串内容是否符合格式要求
String支持正则表达式的三个方法:
matches():检查是否匹配
split():拆分
replaceAll():替换
Object:所有类的鼻祖,所有类都直接或间接继承了Object
其中有两个方法经常被重写: toString()和equals()
包装类:8种,为了解决基本类型不能直接参与面向对象开发的问题、自动拆装箱特性,允许基本类型与包装类之间直接赋值,底层将会自动补充代码
什么是16进制:逢16进1的计数规则
补码:-------------------了解
位运算:
将一个2进制数每个1位置的权相加即可-------------正数
规则:逢2进1
数字:0 1
基数:2
权: 128 64 32 16 8 4 2 1
2进制:
如何将2进制转换为10进制:
规则:逢16进1
数字:0 1 2 3 4 5 6 7 8 9 a b c d e f
基数:16
权:4096 256 16 1
16进制:
用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制数字
如何缩写:将2进制从最低位开始,每4位2进制缩写为1位16进制
记住32位二进制数-1的编码是32个1
负值:用-1减去0位置对应的权值--------------负数
0111为4位补码的最大值,规律是1个0和3个1,可以推导出:
---32位补码的最大值是:1个0和31个1-----(01111111...)
1000为4位补码的最小值,规律是1个1和3个0,可以推导出:
---32位补码的最小值是:1个1和31个0-----(10000000...)
1111为4位补码的-1,规律是4个1,可以推导出:
---32位补码的-1是:32个1---------------------(111111111...)
计算的时候如果超出4位数则高位自动溢出舍弃,保持4位数不变
将4位2进制数分一半作为负数使用
最高位称为符号位,高位为1是负数,高位为0是正数
计算机中处理有符号数(正负数)的一种编码方式,java中的补码最小类型是int,32位数
以4位2进制为例讲解补码的编码规则:
规律数:------最大值、最小值、-1
深入理解负值:
互补对称现象:-n = ~n+1 --------取反+1 了解即可
左移位运算<<:
运算规则:将2进制数整体向左移动,高位自动溢出舍弃,低位补0
运算规则:将2进制数整体向右移动,低位自动溢出舍弃,高位补0
运算规则:逻辑加法,有1则1
运算规则:逻辑乘法,有0则0
~: 取反(0变1,1变)
&:与运算
|:或运算
右移位运算>>>:
左移位运算<<:
ASCII:美国标准编码(0到127----字母、数字、符号)
GBK:中国国标编码(包含ASCII、中文) 日本也有自己的编码格式
Unicode:世界通用的(包含ASCII、中文、日文、古埃及文......)
UTF:读写流都按UTF格式读写,对中文而言它有3个字节,
其中有一个字节表示长度信息(按两个英文解,还是按一个中文解)
ab:传输的是对应的二进制--------01011011 01010101
接收到二进制后还需解码---------计算机就傻了,不知道将其当作两个英文解还是一个中文解