第二章
02进制,原码反码补码,数据类型
十进制转二进制:除2取余,一直到商0,最后所有余数逆序输出
二进制字面量需要以0b开头
八进制字面量需要以零开头。
十六进制字面量需要以0x开头
10 11 12 13 14 15 16
a b c e f g 10
byte(字节)常用于存储和传输;bit(比特)常用于数据
一个字节是八个比特
原码是最接近人类的(有一个符号位);计算机底层采用二进制补码;补码是反码加一(反码是原码除符号位都反转,负数反码是绝对值的二进制最高位改为1)
补码变原码:补码取反加一;补码减一取反
原码变补码:原码取反加一
成员变量会附默认值
强制类型转换
不超出byte取值范围(-128 127)(short 32767)会自动类型转换
编译器的小心思
多种数据类型在混合运算的时候,先各自转换为容量最大的,再做运算。short和byte混合运算的时候,各自先转换成int再做运算。
编译时只检测语法,常量运算在编译时已经进行过了,但是变量赋值是语法问题。常量运算在编译后已经知道结果是多少了,但是变量运算在编译后只知道是什么类型,不知道具体数值,所以会报错。
浮点型字面量默认double类型。
十进制比较常用,数字大时用科学计数法
为什么float字节比long还大
因为float里的32位字节分别存储浮点数的不同的位置(有8位的指数位)
浮点数参与运算的结果一定不要使用双等号与其他数字相比较,因为任何浮点型数据在计算机底层存储的都是它的近似值。(计组里的754标准)
\u说明是Unicode编码,后面跟的是十六进制数
’'是空字符 '\u0000'是空格
gdk是正支持中文汉字的
字符编码最多采用一个字节编码,最多可以表示256个字符,要记住:a97,A65,0是48
乱码问题:在ascii编码decoding和解码encoding过程中用的不是同一套码表
unicode所有语言占用2-4个字节,字符和十六进制转换
utf-8可变长度字符编码,使用1-4个字节表示一个字符(web开发常用,一个英文字母一个字节,一个汉字三个字节)
简体中文:gdk
繁体中文,big5
http://www.jsons.cn/unicode/在线转码工具
静态的输出变动态,静态的删除 ,变为"+变量+"
char和short都是两个字节,但是char可以表示更大的正整数
基本数据类型转换规则
小容量可以自动转化为大容量
大容量不能自动转化为小容量(当int类型常量没有超过byte short char 时,可以直接赋值)